Function at 0x479370
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x64
mov edi, dword [esp + 0x88]
mov ebx, dword [esp + 0x84]
mov eax, dword [esp + 0x8c]
cmp eax, 2
mov ecx, 1
cmovge ecx, eax
cmp ecx, 0x10001
mov eax, 0x10001
cmovb eax, ecx
mov dword [esp + 0x44], eax
xor eax, eax
cmp ebx, 0x7e000000
ja 0x4793c5
mov ecx, 0x80808081
mov eax, ebx
mul ecx
shr edx, 7
lea eax, [ebx + edx]
add eax, 0x10
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x7c]
cmp eax, edi
jle 0x479408
cmp ebx, 0x1000a
jg 0x47943c
mov ebp, edx
mov eax, dword [esp + 0x78]
mov eax, dword [eax + 0x400c]
cmp eax, 3
je 0x4795ef
test eax, eax
mov edx, dword [esp + 0x78]
jne 0x47967f
mov esi, dword [edx + 0x4008]
jmp 0x47960f
cmp ebx, 0x1000a
jg 0x47948e
mov esi, edx
mov eax, dword [esp + 0x78]
mov eax, dword [eax + 0x400c]
cmp eax, 3
je 0x479bad
test eax, eax
mov edx, dword [esp + 0x78]
jne 0x479c58
mov edi, dword [edx + 0x4008]
jmp 0x479bd1
cmp edx, 0x10000
mov edi, 0
adc edi, 1
mov esi, dword [esp + 0x78]
cmp dword [esi + 0x400c], 0
je 0x4794e3
push 0x4000
push 0
push esi
mov ebp, edx
call sub.msvcrt.dll_memset
mov edx, ebp
xor ebp, ebp
mov ecx, dword [esp + 0x8c]
add esp, 0xc
mov dword [esi + 0x4008], 0
mov dword [esi + 0x400c], 0
jmp 0x479501
cmp edx, 0x10000
mov edi, 0
adc edi, 1
mov esi, dword [esp + 0x78]
cmp dword [esi + 0x400c], 0
je 0x479566
push 0x4000
push 0
push esi
mov ebp, edx
call sub.msvcrt.dll_memset
mov edx, ebp
xor ebp, ebp
mov ecx, dword [esp + 0x8c]
add esp, 0xc
mov dword [esi + 0x4008], 0
mov dword [esi + 0x400c], 0
jmp 0x479584
mov ebp, dword [esi + 0x4008]
cmp edx, 0xffff
ja 0x479501
test ebp, ebp
je 0x479501
add ebp, 0x10000
mov dword [esi + 0x4008], ebp
xor eax, eax
mov dword [esi + 0x4004], 0
mov dword [esi + 0x4000], 0
mov dword [esi + 0x4010], 0
cmp ebx, 0x7e000000
ja 0x47b9f9
lea eax, [edx + ebx]
mov dword [esp + 0x48], eax
mov dword [esi + 0x4010], ebx
lea eax, [ebx + ebp]
mov dword [esi + 0x4008], eax
mov dword [esi + 0x400c], edi
imul eax, dword [edx], 0x9e3779b1
shr eax, 0x14
cmp edx, 0x10000
jae 0x479d14
mov dword [esi + eax*4], ebp
jmp 0x479d17
mov ebp, dword [esi + 0x4008]
cmp edx, 0xffff
ja 0x479584
test ebp, ebp
je 0x479584
add ebp, 0x10000
mov dword [esi + 0x4008], ebp
xor eax, eax
mov dword [esi + 0x4004], 0
mov dword [esi + 0x4000], 0
mov dword [esi + 0x4010], 0
cmp ebx, 0x7e000000
ja 0x47b9f9
lea eax, [edx + ebx]
mov dword [esp + 0x48], eax
mov esi, edx
mov edx, dword [esp + 0x78]
mov dword [edx + 0x4010], ebx
lea eax, [ebx + ebp]
mov dword [edx + 0x4008], eax
mov dword [edx + 0x400c], edi
imul eax, dword [esi], 0x9e3779b1
shr eax, 0x14
cmp esi, 0x10000
jae 0x47a3cc
mov dword [edx + eax*4], ebp
jmp 0x47a3cf
cmp ebx, 0xfff
mov edx, dword [esp + 0x78]
jg 0x47967f
mov esi, dword [edx + 0x4008]
lea eax, [esi + ebx]
cmp eax, 0xffff
jae 0x47967f
mov dword [edx + 0x4004], 0
mov dword [edx + 0x4000], 0
mov dword [edx + 0x4010], 0
test esi, esi
je 0x479696
xor eax, eax
cmp ebx, 0x7e000000
ja 0x47b9f9
test ebx, ebx
je 0x47a998
mov dword [edx + 0x4010], ebx
lea eax, [esi + ebx]
mov dword [edx + 0x4008], eax
mov eax, esi
lea esi, [ebx + ebp]
add edi, ecx
mov dword [edx + 0x400c], 3
cmp ebx, 0xd
mov dword [esp + 0x30], esi
jae 0x47af06
mov dword [esp + 0x34], ecx
mov ebx, ebp
jmp 0x47b8f7
push 0x4014
push 0
push edx
call sub.msvcrt.dll_memset
mov ecx, dword [esp + 0x8c]
add esp, 0xc
xor eax, eax
cmp ebx, 0x7e000000
ja 0x47b9f9
test ebx, ebx
je 0x47a998
lea eax, [ebx + ebp]
add edi, ecx
mov edx, dword [esp + 0x78]
mov dword [edx + 0x4010], ebx
mov dword [edx + 0x4008], ebx
mov dword [edx + 0x400c], 3
cmp ebx, 0xd
jb 0x47ae60
mov dword [esp + 0x18], edi
lea esi, [ebx + ebp]
add esi, 0xfffffff5
mov dword [esp], esi
lea esi, [ebx + ebp]
add esi, 0xfffffffb
mov dword [esp + 0x34], esi
mov esi, eax
imul eax, dword [ebp], 0x9e3779b1
shr eax, 0x13
mov word [edx + eax*2], 0
mov edx, dword [esp + 0x44]
shl edx, 6
lea eax, [esi - 8]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
lea eax, [esi - 6]
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x44], edx
lea ecx, [ebp + 1]
mov dword [esp + 0x28], ebp
mov esi, dword [ebp + 1]
mov edi, 1
nop dword [eax]
mov ebx, ecx
mov ecx, edi
add ecx, ebx
cmp ecx, dword [esp]
ja 0x47ba85
imul edi, esi, 0x9e3779b1
shr edi, 0x13
mov eax, dword [esp + 0x78]
movzx eax, word [eax + edi*2]
mov dword [esp + 0x10], eax
mov ebp, ebx
mov esi, dword [esp + 0x7c]
sub ebp, esi
mov esi, dword [ecx]
mov eax, dword [esp + 0x78]
mov word [eax + edi*2], bp
mov eax, dword [esp + 0x10]
mov edi, edx
shr edi, 6
inc edx
mov ebp, dword [esp + 0x7c]
mov ebp, dword [ebp + eax]
cmp ebp, dword [ebx]
jne 0x479730
add eax, dword [esp + 0x7c]
mov edx, ebx
mov ecx, ebx
mov ebx, dword [esp + 0x28]
sub edx, ebx
lea edi, [edx + 0xef]
lea ebp, [edx - 0xf]
mov dword [esp + 0xc], ecx
mov ch, cl
shl ch, 4
mov cl, bl
shl cl, 4
sub ch, cl
xor esi, esi
mov dword [esp + 0x38], ebp
nop dword [eax]
mov dword [esp + 0x24], edi
mov dword [esp + 0x3c], ebp
mov byte [esp + 8], ch
mov dword [esp + 0x20], edx
lea ecx, [eax + esi]
mov dword [esp + 4], esi
mov edx, dword [esp + 0xc]
lea ebx, [edx + esi]
mov dword [esp + 0x40], ecx
cmp ecx, dword [esp + 0x7c]
mov dword [esp + 0x10], ebx
jbe 0x479812
cmp ebx, dword [esp + 0x28]
jbe 0x479812
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [ecx + ebx - 1]
mov edx, dword [esp + 0x24]
lea edi, [edx - 1]
mov edx, dword [esp + 0x3c]
lea ebp, [edx - 1]
lea esi, [ebx - 1]
mov ch, byte [esp + 8]
add ch, 0xf0
mov edx, dword [esp + 0x20]
dec edx
cmp cl, byte [eax + ebx - 1]
je 0x4797b0
mov eax, dword [esp + 0xc]
sub eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
mov ebp, eax
lea ecx, [esi + eax]
mov eax, dword [esp + 0x20]
mov edx, 0x80808081
mul edx
shr edx, 7
add edx, ecx
mov ecx, dword [esp + 4]
lea eax, [ecx + edx]
add eax, 9
mov edi, dword [esp + 0x18]
cmp eax, edi
ja 0x47ba44
mov eax, ebp
lea eax, [ecx + ebp]
lea edx, [esi + 1]
cmp eax, 0xf
jb 0x4798e8
mov eax, dword [esp + 0x38]
add eax, ecx
mov byte [esi], 0xf0
cmp eax, 0xff
jl 0x4798df
mov esi, dword [esp + 0x3c]
cmp esi, 0x1fd
mov eax, 0x1fd
cmovge esi, eax
mov ebx, ebp
mov eax, ebp
sub eax, esi
add eax, ecx
add eax, 0xef
mov ecx, edx
mov edx, 0x80808081
mul edx
shr edx, 7
mov dword [esp + 0xc], edx
lea eax, [edx + 1]
push eax
push 0xff
push ecx
call sub.msvcrt.dll_memset
mov ecx, dword [esp + 0x10]
add esp, 0xc
mov eax, dword [esp + 0x24]
sub eax, esi
mov edx, 0x80808081
mul edx
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0xc]
add esi, eax
add esi, 2
shr edx, 7
mov eax, edx
shl eax, 8
sub edx, eax
add edx, ebp
lea eax, [ecx + edx]
add eax, 0xfffffef2
mov edx, esi
mov ebx, dword [esp + 0x40]
mov byte [edx], al
inc edx
jmp 0x4798f3
movzx eax, byte [esp + 8]
mov byte [esi], al
mov ebx, dword [esp + 0x40]
add ecx, edx
add ecx, ebp
lea eax, [edx + 8]
cmp ecx, eax
mov esi, edx
mov edx, ecx
mov ebp, eax
mov dword [esp + 4], ecx
cmova ebp, ecx
mov ecx, esi
not esi
add ebp, esi
cmp ebp, 0x18
jb 0x47998e
mov dword [esp + 0xc], ebp
mov edx, ecx
mov ebp, dword [esp + 0x28]
sub edx, ebp
cmp edx, 0x20
jb 0x479994
mov edi, dword [esp + 0xc]
shr edi, 3
inc edi
mov dword [esp + 0xc], edi
and edi, 0xfffffffc
mov ebx, dword [esp + 0x20]
add ebx, ecx
cmp ebx, eax
cmovbe ebx, eax
lea eax, [edi*8]
add eax, ebp
lea edx, [ecx + edi*8]
add esi, ebx
shr esi, 3
inc esi
and esi, 0xfffffffc
xor ebx, ebx
nop word cs:[eax + eax]
movups xmm0, xmmword [ebp + ebx*8]
movups xmm1, xmmword [ebp + ebx*8 + 0x10]
movups xmmword [ecx + ebx*8], xmm0
movups xmmword [ecx + ebx*8 + 0x10], xmm1
add ebx, 4
cmp esi, ebx
jne 0x479960
cmp dword [esp + 0xc], edi
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 0x40]
jne 0x4799a0
jmp 0x4799b2
mov eax, dword [esp + 0x28]
jmp 0x479996
mov eax, ebp
mov edx, ecx
mov ecx, dword [esp + 4]
nop dword [eax]
movsd xmm0, qword [eax]
movsd qword [edx], xmm0
add edx, 8
add eax, 8
cmp edx, ecx
jb 0x4799a0
mov esi, dword [esp + 0x2c]
nop word cs:[eax + eax]
mov edx, dword [esp + 0x10]
mov eax, edx
sub eax, ebx
mov ebp, ecx
mov word [ecx], ax
lea eax, [edx + 4]
lea ecx, [ebx + 4]
cmp dword [esp + 0x14], eax
jbe 0x479b89
mov edx, dword [eax]
xor edx, dword [ecx]
je 0x4799f0
tzcnt ebx, edx
shr ebx, 3
jmp 0x479a6f
mov ecx, ebx
mov ebx, dword [esp + 0x10]
add ebx, 8
add ecx, 8
mov edi, esi
cmp ebx, dword [esp + 0x14]
jae 0x479a25
mov edx, ebx
sub edx, dword [esp + 0x10]
add edx, 0xfffffffc
nop dword [eax]
mov esi, dword [ebx]
xor esi, dword [ecx]
jne 0x479a60
add ebx, 4
add ecx, 4
add edx, 4
cmp ebx, dword [esp + 0x14]
jb 0x479a10
cmp ebx, dword [esp + 0x30]
jae 0x479a39
movzx edx, word [ecx]
cmp dx, word [ebx]
jne 0x479a39
add ebx, 2
add ecx, 2
mov esi, edi
cmp ebx, dword [esp + 0x34]
mov edi, dword [esp + 0x18]
jae 0x479a51
movzx ecx, byte [ecx]
xor edx, edx
cmp cl, byte [ebx]
sete dl
add ebx, edx
sub ebx, eax
jmp 0x479a6f
tzcnt ebx, esi
shr ebx, 3
add ebx, edx
mov esi, edi
mov edi, dword [esp + 0x18]
lea eax, [ebx + 0xf0]
mov ecx, 0x80808081
mul ecx
shr edx, 7
lea eax, [edx + ebp]
add eax, 8
cmp eax, edi
ja 0x47ba44
mov ecx, ebp
lea eax, [ebp + 2]
movzx ecx, byte [esi]
cmp ebx, 0xf
jb 0x479b10
add cl, 0xf
mov byte [esi], cl
lea ecx, [ebx - 0xf]
mov dword [eax], 0xffffffff
cmp ecx, 0x3fc
jb 0x479af6
lea eax, [ebx - 0x40b]
mov ecx, 0x80808081
mul ecx
mov edi, edx
lea eax, [ebp + 6]
shr edi, 9
lea ecx, [edi*4 + 4]
push ecx
push 0xff
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [edi*4 + 6]
add eax, ebp
imul ecx, edi, 0xfffffc04
mov edi, dword [esp + 0x18]
add ecx, ebx
add ecx, 0xfffffbf5
movzx edx, cx
imul edx, edx, 0x8081
shr edx, 0x17
add ecx, edx
mov byte [eax + edx], cl
add eax, edx
inc eax
jmp 0x479b14
add cl, bl
mov byte [esi], cl
mov ebp, dword [esp + 0x10]
add ebx, ebp
add ebx, 4
cmp ebx, dword [esp]
jae 0x47ae58
mov ebp, eax
lea ecx, [ebx - 2]
imul edx, dword [ebx - 2], 0x9e3779b1
mov esi, dword [esp + 0x7c]
sub ecx, esi
mov eax, esi
shr edx, 0x13
mov esi, dword [esp + 0x78]
mov word [esi + edx*2], cx
imul ecx, dword [ebx], 0x9e3779b1
shr ecx, 0x13
movzx edx, word [esi + ecx*2]
mov esi, ebx
sub esi, eax
mov edi, ebx
mov eax, dword [esp + 0x7c]
add eax, edx
mov ebx, dword [esp + 0x78]
mov word [ebx + ecx*2], si
mov ecx, dword [esp + 0x7c]
mov ecx, dword [ecx + edx]
mov dword [esp + 0x10], edi
cmp ecx, dword [edi]
jne 0x479b9c
lea ecx, [ebp + 1]
mov byte [ebp], 0
mov esi, ebp
mov edi, dword [esp + 0x18]
mov ebx, eax
jmp 0x4799c0
mov ebx, eax
mov edi, esi
cmp ebx, dword [esp + 0x14]
jb 0x479a04
jmp 0x479a25
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x44]
jmp 0x47971e
cmp ebx, 0xfff
mov edx, dword [esp + 0x78]
jg 0x479c58
mov edi, dword [edx + 0x4008]
lea eax, [edi + ebx]
cmp eax, 0xffff
jae 0x479c58
mov dword [edx + 0x4004], 0
mov dword [edx + 0x4000], 0
mov dword [edx + 0x4010], 0
test edi, edi
je 0x479c6f
xor eax, eax
cmp ebx, 0x7e000000
ja 0x47b9f9
test ebx, ebx
je 0x47a9a0
mov ebp, esi
add esi, ebx
mov dword [edx + 0x4010], ebx
lea eax, [edi + ebx]
mov dword [edx + 0x4008], eax
mov dword [edx + 0x400c], 3
cmp ebx, 0xd
mov dword [esp + 0x34], esi
jae 0x47b410
mov dword [esp + 0x1c], ecx
mov edx, ebp
mov ecx, dword [esp + 0x34]
sub ecx, edx
cmp ecx, 0xf
jae 0x47b896
mov eax, ecx
shl al, 4
mov edi, dword [esp + 0x1c]
mov byte [edi], al
jmp 0x47ba2c
push 0x4014
push 0
push edx
call sub.msvcrt.dll_memset
mov ecx, dword [esp + 0x8c]
add esp, 0xc
xor eax, eax
cmp ebx, 0x7e000000
ja 0x47b9f9
test ebx, ebx
je 0x47a9a0
lea edi, [esi + ebx]
mov edx, dword [esp + 0x78]
mov dword [edx + 0x4010], ebx
mov dword [edx + 0x4008], ebx
mov dword [edx + 0x400c], 3
cmp ebx, 0xd
jae 0x47a9bd
mov dword [esp + 0xc], ecx
mov ebp, esi
sub edi, ebp
cmp edi, 0xf
jb 0x47ae46
lea eax, [edi - 0xf]
mov ebx, dword [esp + 0xc]
mov byte [ebx], 0xf0
lea ecx, [ebx + 1]
cmp eax, 0xff
jb 0x47b94a
lea eax, [edi - 0x10e]
mov edx, 0x80808081
mul edx
mov esi, edx
shr esi, 7
lea eax, [esi + 1]
push eax
push 0xff
push ecx
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, esi
shl eax, 8
lea ecx, [esi + ebx]
add ecx, 2
sub esi, eax
mov ebx, edi
lea eax, [edi + esi]
add eax, 0xfffffef2
jmp 0x47b94c
mov dword [esi + eax*4], edx
mov edi, dword [esp + 0x88]
mov eax, edx
sub eax, ebp
mov dword [esp + 0xc], eax
add edi, ecx
mov dword [esp + 0x18], edi
lea eax, [edx + ebx]
add eax, 0xfffffff5
mov dword [esp + 0x10], eax
lea eax, [edx + ebx]
add eax, 0xfffffffb
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x44]
shl eax, 6
mov dword [esp + 0x60], eax
inc eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x48]
mov esi, edx
lea edx, [eax - 8]
mov dword [esp + 0x14], edx
mov edx, esi
add eax, 0xfffffffa
mov dword [esp + 0x58], eax
mov edi, ecx
mov ebx, esi
mov dword [esp + 0x30], edi
imul ecx, dword [ebx + 1], 0x9e3779b1
lea edi, [ebx + 1]
shr ecx, 0x14
lea eax, [ebx + 2]
cmp edx, 0xffff
mov dword [esp + 0x20], ebx
ja 0x479e0a
mov ebx, dword [esp + 0x44]
mov edx, dword [esp + 0x54]
jmp 0x479db8
shr ebp, 0x14
mov eax, dword [esp]
mov edi, dword [esp + 4]
add eax, edi
lea ecx, [edx + 1]
shr edx, 6
mov ebx, edx
mov edx, ecx
mov ecx, ebp
cmp eax, dword [esp + 0x10]
mov ebp, dword [esp + 0xc]
ja 0x47ba01
mov dword [esp], ebx
mov ebx, edi
sub ebx, ebp
mov dword [esp + 4], eax
imul ebp, dword [eax], 0x9e3779b1
mov eax, dword [esp + 0x78]
mov eax, dword [eax + ecx*4]
mov esi, dword [esp + 0x78]
mov dword [esi + ecx*4], ebx
lea ecx, [eax + 0xffff]
cmp ecx, ebx
jb 0x479da0
mov ecx, edi
mov edi, eax
mov eax, ecx
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + edi]
cmp ecx, dword [eax]
jne 0x479da0
add edi, dword [esp + 0xc]
mov dword [esp + 8], edi
jmp 0x479e62
cmp eax, dword [esp + 0x10]
ja 0x47a337
mov edx, dword [esp + 0x60]
mov ebp, edi
jmp 0x479e39
mov eax, edx
sar eax, 6
shr edi, 0x14
add eax, esi
inc edx
mov ecx, edi
mov ebp, esi
cmp eax, dword [esp + 0x10]
ja 0x47ba01
mov esi, eax
imul edi, dword [eax], 0x9e3779b1
mov eax, dword [esp + 0x78]
mov ebx, dword [eax + ecx*4]
mov dword [eax + ecx*4], ebp
lea ecx, [ebx + 0xffff]
cmp ecx, ebp
jb 0x479e20
mov eax, ebp
mov ecx, dword [ebx]
cmp ecx, dword [ebp]
jne 0x479e20
mov dword [esp + 8], ebx
mov ecx, eax
mov ebx, dword [esp + 0x20]
sub ecx, ebx
lea edx, [ecx + 0xef]
mov dword [esp + 0x24], edx
mov dword [esp + 0x4c], ecx
add ecx, 0xfffffff1
mov dword [esp + 0x3c], ecx
mov edi, eax
sub edi, ebx
lea edx, [edi - 0xf]
mov ch, al
shl ch, 4
mov cl, bl
shl cl, 4
sub ch, cl
xor esi, esi
mov dword [esp + 0x50], edx
mov ebp, eax
mov eax, ebx
mov dword [esp + 0x1c], ebp
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x38], edx
mov byte [esp + 0x28], ch
mov dword [esp], edi
mov edx, eax
mov eax, dword [esp + 8]
add eax, esi
mov ebx, esi
lea ecx, [esi + ebp]
mov dword [esp + 4], ecx
mov dword [esp + 0x34], eax
cmp eax, dword [esp + 0x7c]
mov eax, edx
jbe 0x479f1c
cmp dword [esp + 4], eax
jbe 0x479f1c
mov eax, ebx
movzx ecx, byte [ebp + ebx - 1]
mov edx, dword [esp + 0x40]
dec edx
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x2c]
dec edx
mov dword [esp + 0x3c], edx
lea esi, [ebx - 1]
mov edx, dword [esp + 0x38]
dec edx
mov ch, byte [esp + 0x28]
add ch, 0xf0
mov edi, dword [esp]
dec edi
mov ebp, dword [esp + 8]
cmp cl, byte [ebp + ebx - 1]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
je 0x479ea0
sub ebp, eax
mov edi, dword [esp + 0x30]
mov eax, dword [esp]
mov edx, 0x80808081
mul edx
shr edx, 7
add edx, edi
add edx, ebp
lea eax, [ebx + edx]
add eax, 9
mov edx, dword [esp + 0x18]
cmp eax, edx
ja 0x47ba44
mov ecx, ebp
mov dword [esp + 0x1c], ebp
lea eax, [ebx + ebp]
lea ecx, [edi + 1]
cmp eax, 0xf
mov esi, ebx
jb 0x47a007
mov edx, dword [esp + 0x50]
add edx, esi
mov byte [edi], 0xf0
cmp edx, 0xff
jl 0x479ffe
mov eax, dword [esp + 0x38]
cmp eax, 0x1fd
mov edx, 0x1fd
cmovge eax, edx
neg eax
mov ebx, dword [esp + 0x4c]
add eax, ebx
add eax, 0xef
add eax, esi
mov edx, 0x80808081
mul edx
add ebx, 0xef
shr edx, 7
inc edx
push edx
push 0xff
push ecx
call sub.msvcrt.dll_memset
add esp, 0xc
mov ecx, dword [esp + 0x2c]
cmp ecx, 0x1fd
mov eax, 0x1fd
cmovge ecx, eax
sub ebx, ecx
add ebx, esi
mov eax, ebx
mov edx, 0x80808081
mul edx
mov ebx, edx
mov eax, dword [esp + 0x40]
sub eax, ecx
mov ecx, 0x80808081
mul ecx
shr edx, 7
mov eax, edx
shl eax, 8
sub edx, eax
add edx, dword [esp + 0x4c]
shr ebx, 7
lea ecx, [edi + ebx]
add ecx, 2
add edx, esi
add edx, 0xfffffef2
mov eax, dword [esp + 0x1c]
mov byte [ecx], dl
inc ecx
jmp 0x47a012
movzx eax, byte [esp + 0x28]
mov byte [edi], al
mov eax, dword [esp + 0x1c]
add esi, ecx
add esi, eax
lea eax, [ecx + 8]
cmp esi, eax
mov edx, eax
mov dword [esp + 8], esi
cmova edx, esi
mov esi, ecx
not esi
add edx, esi
cmp edx, 0x18
jb 0x47a0a1
mov edi, ecx
mov ebx, dword [esp + 0x20]
sub ecx, ebx
cmp ecx, 0x20
jb 0x47a0a7
shr edx, 3
inc edx
mov ecx, edx
and ecx, 0xfffffffc
mov ebp, dword [esp]
add ebp, edi
cmp ebp, eax
cmovbe ebp, eax
lea eax, [ebx + ecx*8]
mov dword [esp], ecx
lea ecx, [edi + ecx*8]
add esi, ebp
shr esi, 3
inc esi
and esi, 0xfffffffc
mov ebp, ebx
xor ebx, ebx
nop word cs:[eax + eax]
movups xmm0, xmmword [ebp + ebx*8]
movups xmm1, xmmword [ebp + ebx*8 + 0x10]
movups xmmword [edi + ebx*8], xmm0
movups xmmword [edi + ebx*8 + 0x10], xmm1
add ebx, 4
cmp esi, ebx
jne 0x47a070
cmp edx, dword [esp]
jne 0x47a0ab
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 8]
mov ebp, dword [esp + 0x34]
jmp 0x47a0e6
mov eax, dword [esp + 0x20]
jmp 0x47a0ab
mov eax, ebx
mov ecx, edi
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 8]
mov ebp, dword [esp + 0x34]
nop word [eax + eax]
movsd xmm0, qword [eax]
movsd qword [ecx], xmm0
add ecx, 8
add eax, 8
cmp ecx, esi
jb 0x47a0c0
mov ebx, dword [esp + 4]
jmp 0x47a0e6
lea esi, [edi + 1]
mov byte [edi], 0
mov eax, ebx
sub eax, ebp
mov word [esi], ax
lea eax, [ebx + 4]
lea ecx, [ebp + 4]
cmp dword [esp + 0x14], eax
mov dword [esp + 0x20], ebx
jbe 0x47a2fa
mov edx, dword [eax]
xor edx, dword [ecx]
je 0x47a120
tzcnt ebx, edx
shr ebx, 3
mov ebp, dword [esp + 0x18]
jmp 0x47a191
add ebx, 8
add ebp, 8
mov ecx, ebp
mov dword [esp + 8], esi
cmp ebx, dword [esp + 0x14]
jae 0x47a155
mov edx, ebx
sub edx, dword [esp + 0x20]
add edx, 0xfffffffc
nop dword [eax + eax]
mov esi, dword [ebx]
xor esi, dword [ecx]
jne 0x47a180
add ebx, 4
add ecx, 4
add edx, 4
cmp ebx, dword [esp + 0x14]
jb 0x47a140
cmp ebx, dword [esp + 0x58]
jae 0x47a2dd
movzx edx, word [ecx]
cmp dx, word [ebx]
mov esi, dword [esp + 8]
jne 0x47a2e1
add ebx, 2
add ecx, 2
jmp 0x47a2e1
tzcnt ebx, esi
shr ebx, 3
add ebx, edx
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 8]
lea eax, [ebx + 0xf0]
mov ecx, 0x80808081
mul ecx
shr edx, 7
lea eax, [esi + edx]
add eax, 8
cmp eax, ebp
ja 0x47ba44
lea eax, [esi + 2]
movzx ecx, byte [edi]
cmp ebx, 0xf
jb 0x47a240
add cl, 0xf
mov byte [edi], cl
lea ecx, [ebx - 0xf]
mov dword [eax], 0xffffffff
cmp ecx, 0x3fc
jb 0x47a213
lea eax, [ebx - 0x40b]
mov ecx, 0x80808081
mul ecx
mov edi, edx
lea eax, [esi + 6]
shr edi, 9
lea ecx, [edi*4 + 4]
push ecx
push 0xff
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [esi + edi*4]
add eax, 6
imul ecx, edi, 0xfffffc04
add ecx, ebx
add ecx, 0xfffffbf5
movzx edx, cx
imul edx, edx, 0x8081
shr edx, 0x17
add ecx, edx
lea edi, [eax + edx]
inc edi
mov byte [eax + edx], cl
mov ebp, dword [esp + 0x20]
add ebx, ebp
add ebx, 4
cmp ebx, dword [esp + 0x10]
jb 0x47a259
jmp 0x47a333
add cl, bl
mov byte [edi], cl
mov edi, eax
mov ebp, dword [esp + 0x20]
add ebx, ebp
add ebx, 4
cmp ebx, dword [esp + 0x10]
jae 0x47a333
lea eax, [ebx - 2]
imul ecx, dword [ebx - 2], 0x9e3779b1
shr ecx, 0x14
mov ebp, dword [esp + 0x7c]
cmp ebp, 0x10000
jae 0x47a2b0
mov ebp, dword [esp + 0xc]
sub eax, ebp
mov esi, dword [esp + 0x78]
mov dword [esi + ecx*4], eax
imul ecx, dword [ebx], 0x9e3779b1
shr ecx, 0x14
mov eax, dword [esi + ecx*4]
mov edx, ebx
sub edx, ebp
mov dword [esi + ecx*4], edx
lea ecx, [eax + 0xffff]
cmp ecx, edx
jb 0x47a30f
lea ecx, [eax + ebp]
mov eax, dword [ebp + eax]
mov ebp, ecx
cmp eax, dword [ebx]
je 0x47a0e0
jmp 0x47a321
mov edx, dword [esp + 0x78]
mov dword [edx + ecx*4], eax
imul eax, dword [ebx], 0x9e3779b1
shr eax, 0x14
mov ebp, dword [edx + eax*4]
mov dword [edx + eax*4], ebx
lea eax, [ebp + 0xffff]
cmp eax, ebx
jb 0x47a318
mov eax, dword [ebp]
cmp eax, dword [ebx]
je 0x47a0e0
jmp 0x47a32a
mov esi, dword [esp + 8]
cmp ebx, dword [esp + 0x5c]
jae 0x47a2f3
movzx ecx, byte [ecx]
xor edx, edx
cmp cl, byte [ebx]
sete dl
add ebx, edx
sub ebx, eax
jmp 0x47a10e
mov ebx, eax
mov dword [esp + 8], esi
cmp ebx, dword [esp + 0x14]
jb 0x47a132
jmp 0x47a155
mov edx, dword [esp + 0x7c]
jmp 0x479d6a
mov edx, dword [esp + 0x7c]
jmp 0x479d6a
mov edx, dword [esp + 0x7c]
jmp 0x479d6a
mov edx, dword [esp + 0x7c]
jmp 0x479d6a
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x48]
sub esi, ebx
mov eax, dword [esp + 0x30]
lea ecx, [eax + esi]
lea eax, [esi + 0xf0]
mov edx, 0x80808081
mul edx
shr edx, 7
lea eax, [edx + ecx]
inc eax
cmp eax, edi
mov eax, 0
ja 0x47b9f9
mov ebp, ebx
cmp esi, 0xf
jb 0x47a9ad
lea eax, [esi - 0xf]
mov ebx, dword [esp + 0x30]
mov byte [ebx], 0xf0
lea ecx, [ebx + 1]
cmp eax, 0xff
jb 0x47aeea
lea eax, [esi - 0x10e]
mov edx, 0x80808081
mul edx
mov edi, edx
shr edi, 7
lea eax, [edi + 1]
push eax
push 0xff
push ecx
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, edi
shl eax, 8
lea ecx, [edi + ebx]
add ecx, 2
sub edi, eax
mov ebx, esi
lea eax, [esi + edi]
add eax, 0xfffffef2
jmp 0x47b94c
mov dword [edx + eax*4], esi
mov edx, esi
mov eax, ebp
mov ebp, esi
sub ebp, eax
lea eax, [esi + ebx]
add eax, 0xfffffff5
mov dword [esp + 0x10], eax
lea eax, [esi + ebx]
add eax, 0xfffffffb
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x44]
shl eax, 6
mov dword [esp + 0x60], eax
inc eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x48]
lea edx, [eax - 8]
mov dword [esp + 0x14], edx
mov edx, esi
add eax, 0xfffffffa
mov dword [esp + 0x58], eax
mov esi, ecx
mov ebx, edx
mov dword [esp + 0xc], ebp
imul ecx, dword [ebx + 1], 0x9e3779b1
lea edi, [ebx + 1]
shr ecx, 0x14
lea eax, [ebx + 2]
cmp edx, 0xffff
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x30], esi
ja 0x47a4ba
mov ebx, dword [esp + 0x44]
mov edx, dword [esp + 0x54]
cmp eax, dword [esp + 0x10]
jbe 0x47a476
jmp 0x47b967
shr ebp, 0x14
mov eax, dword [esp]
mov edi, dword [esp + 4]
add eax, edi
lea ecx, [edx + 1]
shr edx, 6
mov ebx, edx
mov edx, ecx
mov ecx, ebp
cmp eax, dword [esp + 0x10]
mov ebp, dword [esp + 0xc]
ja 0x47b967
mov dword [esp], ebx
mov ebx, edi
sub ebx, ebp
mov dword [esp + 4], eax
imul ebp, dword [eax], 0x9e3779b1
mov eax, dword [esp + 0x78]
mov eax, dword [eax + ecx*4]
mov esi, dword [esp + 0x78]
mov dword [esi + ecx*4], ebx
lea ecx, [eax + 0xffff]
cmp ecx, ebx
jb 0x47a450
mov ecx, edi
mov edi, eax
mov eax, ecx
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx + edi]
cmp ecx, dword [eax]
jne 0x47a450
add edi, dword [esp + 0xc]
mov dword [esp + 0x24], edi
jmp 0x47a512
cmp eax, dword [esp + 0x10]
ja 0x47b96f
mov edx, dword [esp + 0x60]
mov ebp, edi
jmp 0x47a4e9
mov eax, edx
sar eax, 6
shr edi, 0x14
add eax, esi
inc edx
mov ecx, edi
mov ebp, esi
cmp eax, dword [esp + 0x10]
ja 0x47b967
mov esi, eax
imul edi, dword [eax], 0x9e3779b1
mov eax, dword [esp + 0x78]
mov ebx, dword [eax + ecx*4]
mov dword [eax + ecx*4], ebp
lea ecx, [ebx + 0xffff]
cmp ecx, ebp
jb 0x47a4d0
mov eax, ebp
mov ecx, dword [ebx]
cmp ecx, dword [ebp]
jne 0x47a4d0
mov dword [esp + 0x24], ebx
mov ecx, eax
mov ebx, dword [esp + 0x1c]
sub ecx, ebx
lea edx, [ecx + 0xef]
mov dword [esp + 8], edx
mov dword [esp + 0x4c], ecx
lea edi, [ecx - 0xf]
mov esi, eax
sub esi, ebx
mov ecx, eax
mov dword [esp + 4], eax
lea eax, [esi - 0xf]
mov dh, cl
shl dh, 4
mov ecx, ebx
shl cl, 4
sub dh, cl
xor ebp, ebp
mov dword [esp + 0x50], eax
mov ecx, eax
nop dword [eax]
mov eax, dword [esp + 8]
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], edi
mov dword [esp + 0x2c], ecx
mov dl, dh
mov dword [esp + 0x3c], esi
mov eax, dword [esp + 0x24]
add eax, ebp
mov dword [esp], ebp
mov ecx, dword [esp + 4]
add ecx, ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x34], eax
cmp eax, dword [esp + 0x7c]
jbe 0x47a5d9
cmp dword [esp + 0x20], ebx
jbe 0x47a5d9
mov eax, dword [esp]
mov ecx, dword [esp + 4]
movzx ecx, byte [ecx + eax - 1]
mov byte [esp + 0x38], cl
mov ecx, dword [esp + 0x28]
dec ecx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x40]
lea edi, [ecx - 1]
lea ebp, [eax - 1]
mov ecx, dword [esp + 0x2c]
dec ecx
mov dh, dl
add dh, 0xf0
mov esi, dword [esp + 0x3c]
dec esi
mov ebx, dword [esp + 0x24]
mov byte [esp + 0x18], dl
mov dl, byte [esp + 0x38]
cmp dl, byte [ebx + eax - 1]
mov dl, byte [esp + 0x18]
mov ebx, dword [esp + 0x1c]
je 0x47a550
mov eax, dword [esp + 4]
sub eax, ebx
mov edi, dword [esp]
mov dword [esp + 4], eax
add eax, edi
mov esi, dword [esp + 0x30]
lea ecx, [esi + 1]
cmp eax, 0xf
jb 0x47a6a6
mov eax, dword [esp + 0x50]
add eax, edi
mov byte [esi], 0xf0
cmp eax, 0xff
jl 0x47a69d
mov eax, dword [esp + 0x2c]
cmp eax, 0x1fd
mov edi, 0x1fd
cmovge eax, edi
neg eax
mov ebp, dword [esp + 0x4c]
add eax, ebp
add eax, 0xef
add eax, dword [esp]
mov edx, 0x80808081
mul edx
lea eax, [ebp + 0xef]
mov dword [esp + 8], eax
shr edx, 7
inc edx
push edx
push 0xff
push ecx
call sub.msvcrt.dll_memset
add esp, 0xc
mov ebp, dword [esp + 0x40]
cmp ebp, 0x1fd
cmovge ebp, edi
mov edi, dword [esp]
mov eax, dword [esp + 8]
sub eax, ebp
add eax, edi
mov ecx, 0x80808081
mul ecx
mov ecx, edx
mov eax, dword [esp + 0x28]
sub eax, ebp
mov edx, 0x80808081
mul edx
shr edx, 7
mov eax, edx
shl eax, 8
sub edx, eax
add edx, dword [esp + 0x4c]
shr ecx, 7
add ecx, esi
add ecx, 2
lea eax, [edi + edx]
add eax, 0xfffffef2
mov ebp, dword [esp + 4]
mov byte [ecx], al
inc ecx
jmp 0x47a6ac
mov byte [esi], dl
mov ebp, dword [esp + 4]
add edi, ecx
add edi, ebp
lea eax, [ecx + 8]
cmp edi, eax
mov esi, eax
mov dword [esp], edi
cmova esi, edi
mov edi, ecx
not edi
add esi, edi
cmp esi, 0x18
jb 0x47a730
mov edx, ecx
sub edx, ebx
cmp edx, 0x20
jb 0x47a730
shr esi, 3
inc esi
mov edx, esi
and edx, 0xfffffffc
mov ebp, dword [esp + 0x3c]
add ebp, ecx
cmp ebp, eax
cmovbe ebp, eax
lea eax, [ebx + edx*8]
mov dword [esp + 4], edx
lea edx, [ecx + edx*8]
add edi, ebp
shr edi, 3
inc edi
and edi, 0xfffffffc
xor ebp, ebp
nop word [eax + eax]
movups xmm0, xmmword [ebx + ebp*8]
movups xmm1, xmmword [ebx + ebp*8 + 0x10]
movups xmmword [ecx + ebp*8], xmm0
movups xmmword [ecx + ebp*8 + 0x10], xmm1
add ebp, 4
cmp edi, ebp
jne 0x47a700
cmp esi, dword [esp + 4]
jne 0x47a734
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x30]
mov edi, dword [esp]
mov edx, dword [esp + 0x34]
jmp 0x47a766
mov eax, ebx
mov edx, ecx
mov esi, dword [esp + 0x30]
mov edi, dword [esp]
nop dword [eax + eax]
movsd xmm0, qword [eax]
movsd qword [edx], xmm0
add edx, 8
add eax, 8
cmp edx, edi
jb 0x47a740
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
jmp 0x47a766
lea edi, [esi + 1]
mov byte [esi], 0
mov ebp, esi
mov eax, ebx
sub eax, edx
mov word [edi], ax
lea eax, [edi + 2]
mov dword [esp + 4], eax
lea ecx, [ebx + 4]
mov eax, edx
add edx, 4
cmp dword [esp + 0x14], ecx
jbe 0x47a94e
mov esi, dword [ecx]
xor esi, dword [edx]
je 0x47a7b0
mov edi, ebx
tzcnt ebx, esi
shr ebx, 3
mov ecx, ebx
or ecx, 4
add edi, ecx
movzx ecx, byte [ebp]
mov eax, dword [esp + 4]
jmp 0x47a8b0
mov dword [esp], edi
mov edi, ebx
add ebx, 8
add eax, 8
mov edx, eax
cmp ebx, dword [esp + 0x14]
jae 0x47a95f
mov eax, dword [esp + 4]
nop dword [eax + eax]
mov esi, dword [ebx]
xor esi, dword [edx]
jne 0x47a820
add ebx, 4
add edx, 4
cmp ebx, dword [esp + 0x14]
jb 0x47a7d0
cmp ebx, dword [esp + 0x58]
jae 0x47a7f6
movzx esi, word [edx]
cmp si, word [ebx]
jne 0x47a7f6
add ebx, 2
add edx, 2
cmp ebx, dword [esp + 0x5c]
jae 0x47a829
movzx edx, byte [edx]
mov byte [esp + 4], dl
movzx edx, byte [esp + 4]
cmp dl, byte [ebx]
mov edx, 0
sete dl
jmp 0x47a827
tzcnt edx, esi
shr edx, 3
add ebx, edx
sub ebx, ecx
add edi, ebx
add edi, 4
movzx ecx, byte [ebp]
cmp ebx, 0xf
jb 0x47a8b0
add cl, 0xf
mov byte [ebp], cl
lea ecx, [ebx - 0xf]
mov dword [eax], 0xffffffff
cmp ecx, 0x3fc
jb 0x47a895
lea eax, [ebx - 0x40b]
mov ecx, 0x80808081
mul ecx
mov esi, edx
mov ebp, dword [esp]
lea eax, [ebp + 6]
shr esi, 9
lea ecx, [esi*4 + 4]
push ecx
push 0xff
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [esi*4 + 6]
add eax, ebp
imul ecx, esi, 0xfffffc04
add ecx, ebx
add ecx, 0xfffffbf5
movzx edx, cx
imul edx, edx, 0x8081
shr edx, 0x17
add ecx, edx
lea esi, [eax + edx]
inc esi
mov byte [eax + edx], cl
jmp 0x47a8b7
add bl, cl
mov byte [ebp], bl
mov esi, eax
mov edx, dword [esp + 0x7c]
mov ebx, edi
cmp edi, dword [esp + 0x10]
mov ebp, dword [esp + 0xc]
jae 0x47b96f
lea eax, [ebx - 2]
imul ecx, dword [ebx - 2], 0x9e3779b1
shr ecx, 0x14
cmp edx, 0x10000
jae 0x47a920
mov edi, esi
sub eax, ebp
mov esi, dword [esp + 0x78]
mov dword [esi + ecx*4], eax
imul ecx, dword [ebx], 0x9e3779b1
shr ecx, 0x14
mov eax, dword [esi + ecx*4]
mov edx, ebx
sub edx, ebp
mov dword [esi + ecx*4], edx
lea ecx, [eax + 0xffff]
cmp ecx, edx
jb 0x47a972
lea edx, [eax + ebp]
mov eax, dword [ebp + eax]
cmp eax, dword [ebx]
mov esi, edi
je 0x47a760
jmp 0x47a986
mov edx, dword [esp + 0x78]
mov dword [edx + ecx*4], eax
imul eax, dword [ebx], 0x9e3779b1
shr eax, 0x14
mov ecx, dword [edx + eax*4]
mov dword [edx + eax*4], ebx
lea eax, [ecx + 0xffff]
cmp eax, ebx
jb 0x47a97d
mov edx, ecx
mov eax, dword [ecx]
cmp eax, dword [ebx]
je 0x47a760
jmp 0x47a98f
mov dword [esp], edi
mov edi, ebx
mov ebx, ecx
cmp ebx, dword [esp + 0x14]
jb 0x47a7c7
mov eax, dword [esp + 4]
cmp ebx, dword [esp + 0x58]
jb 0x47a7e8
jmp 0x47a7f6
mov esi, edi
mov edx, dword [esp + 0x7c]
jmp 0x47a417
mov edx, dword [esp + 0x7c]
jmp 0x47a417
mov edx, dword [esp + 0x7c]
jmp 0x47a417
mov edx, dword [esp + 0x7c]
jmp 0x47a417
test edi, edi
jle 0x47b9f9
mov byte [ecx], 0
mov eax, 1
jmp 0x47b9f9
mov ebx, esi
mov eax, ebx
shl al, 4
mov esi, dword [esp + 0x30]
jmp 0x47ae51
lea eax, [esi + ebx]
add eax, 0xfffffff5
mov dword [esp + 4], eax
lea eax, [esi + ebx]
add eax, 0xfffffffb
mov dword [esp + 0x34], eax
imul eax, dword [esi], 0x9e3779b1
shr eax, 0x13
mov word [edx + eax*2], 0
mov edx, dword [esp + 0x44]
shl edx, 6
lea eax, [edi - 8]
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], edi
lea eax, [edi - 6]
mov dword [esp + 0x30], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x44], edx
lea eax, [esi + 1]
mov dword [esp + 0x2c], esi
mov esi, dword [esi + 1]
mov edi, 1
mov ebx, eax
mov eax, edi
add eax, ebx
cmp eax, dword [esp + 4]
ja 0x47ba6d
imul edi, esi, 0x9e3779b1
shr edi, 0x13
mov ecx, dword [esp + 0x78]
movzx ecx, word [ecx + edi*2]
mov ebp, ebx
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x14], ebx
sub ebp, esi
mov esi, dword [eax]
mov ebx, dword [esp + 0x78]
mov word [ebx + edi*2], bp
mov edi, edx
shr edi, 6
inc edx
mov ebx, dword [esp + 0x7c]
mov ebp, dword [ebx + ecx]
mov ebx, dword [esp + 0x14]
cmp ebp, dword [ebx]
jne 0x47aa10
add ecx, dword [esp + 0x7c]
mov eax, ebx
mov edx, ebx
mov ebx, dword [esp + 0x2c]
sub eax, ebx
lea esi, [eax + 0xef]
lea edi, [eax - 0xf]
mov dh, dl
shl dh, 4
mov dl, bl
shl dl, 4
sub dh, dl
xor ebp, ebp
mov dword [esp + 0x18], edi
nop word cs:[eax + eax]
mov dword [esp + 8], esi
mov dword [esp + 0x24], edi
mov dl, dh
mov dword [esp + 0x20], eax
lea eax, [ecx + ebp]
mov dword [esp], ebp
mov esi, dword [esp + 0x14]
lea ebx, [esi + ebp]
mov dword [esp + 0x10], eax
cmp eax, dword [esp + 0x7c]
jbe 0x47aafe
cmp ebx, dword [esp + 0x2c]
jbe 0x47aafe
mov esi, dword [esp]
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + esi - 1]
mov byte [esp + 0x28], al
mov eax, dword [esp + 8]
dec eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x24]
lea edi, [eax - 1]
lea ebp, [esi - 1]
mov dh, dl
add dh, 0xf0
mov eax, dword [esp + 0x20]
dec eax
mov byte [esp + 0x40], dl
mov dl, byte [esp + 0x28]
cmp dl, byte [ecx + esi - 1]
mov dl, byte [esp + 0x40]
mov esi, dword [esp + 0x3c]
je 0x47aa90
mov eax, ebx
sub eax, dword [esp + 0x2c]
mov edi, dword [esp + 0xc]
lea ecx, [edi + 1]
cmp eax, 0xf
jb 0x47aba0
mov esi, dword [esp]
mov eax, dword [esp + 0x18]
add eax, esi
mov byte [edi], 0xf0
cmp eax, 0xff
jl 0x47ab9b
mov ebp, dword [esp + 0x24]
cmp ebp, 0x1fd
mov eax, 0x1fd
cmovge ebp, eax
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
sub eax, ebp
add eax, esi
add eax, 0xef
mov edx, 0x80808081
mul edx
shr edx, 7
mov dword [esp + 0x3c], edx
lea eax, [edx + 1]
push eax
push 0xff
push ecx
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [esp + 8]
sub eax, ebp
mov ecx, 0x80808081
mul ecx
mov eax, dword [esp + 0x3c]
lea ecx, [edi + eax]
add ecx, 2
shr edx, 7
mov eax, edx
shl eax, 8
sub edx, eax
add edx, dword [esp + 0x24]
lea eax, [esi + edx]
add eax, 0xfffffef2
mov byte [ecx], al
inc ecx
jmp 0x47aba2
mov byte [edi], dl
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
sub eax, esi
mov edx, dword [esp]
add edx, ecx
add edx, eax
lea eax, [ecx + 8]
cmp edx, eax
mov ebp, eax
mov dword [esp], edx
cmova ebp, edx
mov edi, ecx
not edi
add ebp, edi
cmp ebp, 0x18
jb 0x47ac38
mov edx, ecx
sub edx, esi
cmp edx, 0x20
jb 0x47ac38
mov dword [esp + 0x14], ebx
shr ebp, 3
inc ebp
mov dword [esp + 8], ebp
mov ebx, ebp
and ebx, 0xfffffffc
mov ebp, dword [esp + 0x20]
add ebp, ecx
cmp ebp, eax
cmovbe ebp, eax
lea eax, [esi + ebx*8]
lea edx, [ecx + ebx*8]
add edi, ebp
shr edi, 3
inc edi
and edi, 0xfffffffc
xor ebp, ebp
nop word cs:[eax + eax]
movups xmm0, xmmword [esi + ebp*8]
movups xmm1, xmmword [esi + ebp*8 + 0x10]
movups xmmword [ecx + ebp*8], xmm0
movups xmmword [ecx + ebp*8 + 0x10], xmm1
add ebp, 4
cmp edi, ebp
jne 0x47ac10
cmp dword [esp + 8], ebx
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp]
je 0x47ac60
jmp 0x47ac40
mov eax, esi
mov edx, ecx
mov ecx, dword [esp]
nop
movsd xmm0, qword [eax]
movsd qword [edx], xmm0
add edx, 8
add eax, 8
cmp edx, ecx
jb 0x47ac40
nop word cs:[eax + eax]
mov edi, dword [esp + 0x38]
mov eax, ebx
mov edx, dword [esp + 0x10]
sub eax, edx
mov word [ecx], ax
mov dword [esp], ecx
lea eax, [ecx + 2]
lea ecx, [ebx + 4]
add edx, 4
cmp edi, ecx
jbe 0x47ae19
mov esi, dword [ecx]
xor esi, dword [edx]
je 0x47acb0
mov ebp, ebx
tzcnt ebx, esi
shr ebx, 3
mov ecx, ebx
or ecx, 4
add ebp, ecx
mov esi, dword [esp + 0xc]
movzx ecx, byte [esi]
jmp 0x47ad70
mov ebp, ebx
add ebx, 8
mov edx, dword [esp + 0x10]
add edx, 8
nop dword [eax]
cmp ebx, edi
jae 0x47add4
mov esi, dword [ebx]
xor esi, dword [edx]
jne 0x47ace0
add ebx, 4
add edx, 4
jmp 0x47acc0
tzcnt edx, esi
shr edx, 3
add ebx, edx
mov esi, dword [esp + 0xc]
sub ebx, ecx
add ebp, ebx
add ebp, 4
movzx ecx, byte [esi]
cmp ebx, 0xf
jb 0x47ad70
add cl, 0xf
mov byte [esi], cl
lea ecx, [ebx - 0xf]
mov dword [eax], 0xffffffff
cmp ecx, 0x3fc
jb 0x47ad54
lea eax, [ebx - 0x40b]
mov ecx, 0x80808081
mul ecx
mov esi, edx
mov edi, dword [esp]
lea eax, [edi + 6]
shr esi, 9
lea ecx, [esi*4 + 4]
push ecx
push 0xff
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [edi + esi*4]
add eax, 6
imul ecx, esi, 0xfffffc04
add ecx, ebx
add ecx, 0xfffffbf5
movzx edx, cx
imul edx, edx, 0x8081
shr edx, 0x17
add ecx, edx
mov byte [eax + edx], cl
add eax, edx
inc eax
jmp 0x47ad74
add bl, cl
mov byte [esi], bl
mov ebx, ebp
cmp ebp, dword [esp + 4]
jae 0x47ae31
mov edi, eax
lea ecx, [ebx - 2]
imul edx, dword [ebx - 2], 0x9e3779b1
mov ebp, dword [esp + 0x7c]
sub ecx, ebp
shr edx, 0x13
mov esi, dword [esp + 0x78]
mov word [esi + edx*2], cx
imul ecx, dword [ebx], 0x9e3779b1
shr ecx, 0x13
movzx edx, word [esi + ecx*2]
mov esi, ebx
sub esi, ebp
lea eax, [edx + ebp]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x78]
mov word [eax + ecx*2], si
mov ecx, dword [ebp + edx]
cmp ecx, dword [ebx]
jne 0x47ae22
lea ecx, [edi + 1]
mov byte [edi], 0
mov dword [esp + 0xc], edi
jmp 0x47ac60
cmp ebx, dword [esp + 0x30]
jae 0x47adee
movzx esi, word [edx]
cmp si, word [ebx]
mov esi, dword [esp + 0xc]
jne 0x47adf2
add ebx, 2
add edx, 2
jmp 0x47adf2
mov esi, dword [esp + 0xc]
cmp ebx, dword [esp + 0x34]
jae 0x47aced
movzx edx, byte [edx]
mov byte [esp + 0x14], dl
movzx edx, byte [esp + 0x14]
cmp dl, byte [ebx]
mov edx, 0
sete dl
add ebx, edx
jmp 0x47aced
mov ebp, ebx
mov ebx, ecx
jmp 0x47acc0
mov dword [esp + 0xc], edi
mov esi, ebx
mov edx, dword [esp + 0x44]
jmp 0x47aa01
mov dword [esp + 0xc], eax
mov ebp, ebx
mov edi, dword [esp + 0x1c]
sub edi, ebp
cmp edi, 0xf
jae 0x479cbc
mov ebx, edi
mov eax, ebx
shl al, 4
mov esi, dword [esp + 0xc]
mov byte [esi], al
jmp 0x47b950
mov ecx, eax
mov ebp, ebx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], ebp
sub eax, ebp
mov ebp, ecx
add ecx, eax
mov esi, eax
add eax, 0xf0
mov edx, 0x80808081
mul edx
shr edx, 7
lea eax, [edx + ecx]
inc eax
cmp eax, edi
mov eax, 0
ja 0x47b9f9
cmp esi, 0xf
jb 0x47aef1
mov edi, esi
lea eax, [esi - 0xf]
mov byte [ebp], 0xf0
lea ecx, [ebp + 1]
cmp eax, 0xff
jb 0x47ba0e
lea eax, [edi - 0x10e]
mov edx, 0x80808081
mul edx
mov ebx, ebp
mov esi, edx
shr esi, 7
lea eax, [esi + 1]
push eax
push 0xff
push ecx
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, esi
shl eax, 8
lea ecx, [esi + ebp]
add ecx, 2
sub esi, eax
mov ebx, edi
lea eax, [edi + esi]
add eax, 0xfffffef2
jmp 0x47ba10
mov ebx, esi
jmp 0x47b94c
mov ebx, esi
mov eax, ebx
shl al, 4
mov esi, ebp
mov byte [ebp], al
mov edx, dword [esp + 0x28]
jmp 0x47ba18
mov edx, eax
mov eax, ebp
sub eax, edx
mov dword [esp + 4], eax
lea eax, [ebx + ebp]
add eax, 0xfffffff5
mov dword [esp + 0x20], eax
lea eax, [ebx + ebp]
add eax, 0xfffffffb
mov dword [esp + 0x48], eax
imul eax, dword [ebp], 0x9e3779b1
shr eax, 0x13
mov dword [esp + 0xc], edx
mov ebx, edx
mov edx, dword [esp + 0x78]
mov word [edx + eax*2], bx
mov ebx, ebp
mov ebp, dword [esp + 0x44]
mov edx, ebp
shl edx, 6
lea eax, [esi - 8]
mov dword [esp + 0x14], eax
lea eax, [esi - 6]
mov dword [esp + 0x54], eax
or edx, 1
lea eax, [ebx + 2]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x4c], edx
jmp 0x47af86
mov dword [esp + 0x34], esi
lea eax, [ebx + 2]
cmp eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x4c]
mov edi, dword [esp + 0x18]
ja 0x47b8f7
lea ecx, [ebx + 1]
mov dword [esp + 8], ebx
mov esi, dword [ebx + 1]
mov dword [esp + 0x10], esi
mov ebx, ecx
mov ecx, edx
jmp 0x47afbb
mov eax, dword [esp]
add eax, edi
lea ebx, [ecx + 1]
shr ecx, 6
mov ebp, ecx
mov ecx, ebx
mov ebx, edi
cmp eax, dword [esp + 0x20]
ja 0x47ba60
mov dword [esp], ebp
mov edi, eax
imul ebp, dword [esp + 0x10], 0x9e3779b1
shr ebp, 0x13
mov eax, dword [esp + 0x78]
movzx edx, word [eax + ebp*2]
mov eax, ebx
sub ebx, dword [esp + 4]
mov esi, dword [edi]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x78]
mov word [esi + ebp*2], bx
cmp dword [esp + 0xc], edx
ja 0x47afa0
mov esi, dword [esp + 4]
mov ebx, dword [esi + edx]
cmp ebx, dword [eax]
jne 0x47afa0
add edx, dword [esp + 4]
mov dword [esp + 0x40], edx
mov edx, eax
mov ecx, eax
mov eax, dword [esp + 8]
sub edx, eax
lea edi, [edx + 0xef]
lea ebp, [edx - 0xf]
mov dword [esp + 0x24], ecx
mov ch, cl
shl ch, 4
mov cl, al
shl cl, 4
sub ch, cl
xor esi, esi
mov dword [esp + 0x50], ebp
nop dword [eax]
mov dword [esp + 0x38], edi
mov dword [esp + 0x1c], ebp
mov byte [esp + 0x2c], ch
mov dword [esp + 0x3c], edx
mov edx, eax
mov eax, dword [esp + 0x40]
add eax, esi
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x24]
add ecx, esi
mov dword [esp + 0x28], ecx
mov dword [esp], eax
cmp eax, dword [esp + 0x7c]
mov eax, edx
jbe 0x47b09f
cmp dword [esp + 0x28], eax
jbe 0x47b09f
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [ecx + eax - 1]
mov edx, dword [esp + 0x38]
lea edi, [edx - 1]
mov edx, dword [esp + 0x1c]
lea ebp, [edx - 1]
lea esi, [eax - 1]
mov ch, byte [esp + 0x2c]
add ch, 0xf0
mov edx, dword [esp + 0x3c]
dec edx
mov ebx, dword [esp + 0x40]
cmp cl, byte [ebx + eax - 1]
mov eax, dword [esp + 8]
je 0x47b030
mov ecx, dword [esp + 0x24]
sub ecx, eax
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
mov edx, 0x80808081
mul edx
shr edx, 7
add edx, esi
add edx, ecx
mov ebp, dword [esp + 0x10]
lea eax, [edx + ebp]
add eax, 9
mov edi, dword [esp + 0x18]
cmp eax, edi
ja 0x47ba44
mov ebx, ecx
lea eax, [ecx + ebp]
lea edx, [esi + 1]
cmp eax, 0xf
jb 0x47b166
mov eax, dword [esp + 0x50]
add eax, ebp
mov byte [esi], 0xf0
cmp eax, 0xff
jl 0x47b161
mov esi, dword [esp + 0x1c]
cmp esi, 0x1fd
mov eax, 0x1fd
cmovge esi, eax
mov eax, ebx
sub eax, esi
add eax, ebp
add eax, 0xef
mov ecx, edx
mov edx, 0x80808081
mul edx
shr edx, 7
mov dword [esp + 0x24], edx
lea eax, [edx + 1]
push eax
push 0xff
push ecx
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x38]
sub eax, esi
mov ecx, 0x80808081
mul ecx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
add ecx, eax
add ecx, 2
shr edx, 7
mov eax, edx
shl eax, 8
sub edx, eax
add edx, ebx
lea eax, [edx + ebp]
add eax, 0xfffffef2
mov edx, ecx
mov byte [edx], al
inc edx
jmp 0x47b16d
movzx eax, byte [esp + 0x2c]
mov byte [esi], al
add ebp, edx
add ebp, ebx
lea eax, [edx + 8]
cmp ebp, eax
mov ecx, eax
cmova ecx, ebp
mov esi, edx
not esi
add ecx, esi
cmp ecx, 0x18
jb 0x47b1fa
mov dword [esp + 0x24], ecx
mov ecx, edx
mov ebx, dword [esp + 8]
sub edx, ebx
cmp edx, 0x20
jb 0x47b200
mov dword [esp + 0x10], ebp
mov edi, dword [esp + 0x24]
shr edi, 3
inc edi
mov dword [esp + 0x24], edi
and edi, 0xfffffffc
mov ebp, dword [esp + 0x3c]
add ebp, ecx
cmp ebp, eax
cmovbe ebp, eax
lea eax, [ebx + edi*8]
lea edx, [ecx + edi*8]
add esi, ebp
shr esi, 3
inc esi
and esi, 0xfffffffc
mov ebp, ebx
xor ebx, ebx
nop dword [eax + eax]
movups xmm0, xmmword [ebp + ebx*8]
movups xmm1, xmmword [ebp + ebx*8 + 0x10]
movups xmmword [ecx + ebx*8], xmm0
movups xmmword [ecx + ebx*8 + 0x10], xmm1
add ebx, 4
cmp esi, ebx
jne 0x47b1d0
cmp dword [esp + 0x24], edi
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x10]
jne 0x47b210
jmp 0x47b222
mov eax, dword [esp + 8]
jmp 0x47b210
mov eax, ebx
mov edx, ecx
nop word cs:[eax + eax]
movsd xmm0, qword [eax]
movsd qword [edx], xmm0
add edx, 8
add eax, 8
cmp edx, ebp
jb 0x47b210
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
nop word [eax + eax]
mov eax, ebx
mov edx, dword [esp]
sub eax, edx
mov dword [esp + 0x10], ebp
mov word [ebp], ax
mov ebp, edx
lea eax, [ebx + 4]
add edx, 4
cmp dword [esp + 0x14], eax
mov dword [esp + 8], ebx
jbe 0x47b3ff
mov esi, dword [eax]
xor esi, dword [edx]
je 0x47b264
tzcnt ebx, esi
shr ebx, 3
jmp 0x47b2c7
add ebx, 8
add ebp, 8
mov edx, ebp
cmp ebx, dword [esp + 0x14]
jae 0x47b295
mov esi, ebx
sub esi, dword [esp + 8]
add esi, 0xfffffffc
nop dword [eax + eax]
mov edi, dword [ebx]
xor edi, dword [edx]
jne 0x47b2ba
add ebx, 4
add edx, 4
add esi, 4
cmp ebx, dword [esp + 0x14]
jb 0x47b280
cmp ebx, dword [esp + 0x54]
jae 0x47b3d8
movzx esi, word [edx]
cmp si, word [ebx]
mov edi, dword [esp + 0x18]
jne 0x47b3dc
add ebx, 2
add edx, 2
jmp 0x47b3dc
tzcnt ebx, edi
shr ebx, 3
add ebx, esi
mov edi, dword [esp + 0x18]
lea eax, [ebx + 0xf0]
mov edx, 0x80808081
mul edx
shr edx, 7
mov esi, dword [esp + 0x10]
lea eax, [esi + edx]
add eax, 8
cmp eax, edi
ja 0x47ba44
add esi, 2
movzx eax, byte [ecx]
cmp ebx, 0xf
jb 0x47b364
add al, 0xf
mov byte [ecx], al
lea eax, [ebx - 0xf]
mov dword [esi], 0xffffffff
cmp eax, 0x3fc
jb 0x47b34e
lea eax, [ebx - 0x40b]
mov ecx, 0x80808081
mul ecx
mov edi, edx
mov esi, dword [esp + 0x10]
lea eax, [esi + 6]
shr edi, 9
lea ecx, [edi*4 + 4]
push ecx
push 0xff
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
lea esi, [esi + edi*4]
add esi, 6
imul eax, edi, 0xfffffc04
mov edi, dword [esp + 0x18]
add eax, ebx
add eax, 0xfffffbf5
movzx ecx, ax
imul ecx, ecx, 0x8081
shr ecx, 0x17
add eax, ecx
mov byte [esi + ecx], al
add esi, ecx
inc esi
jmp 0x47b368
add al, bl
mov byte [ecx], al
mov ebp, dword [esp + 8]
add ebx, ebp
add ebx, 4
cmp ebx, dword [esp + 0x20]
jae 0x47b8f3
imul eax, dword [ebx - 2], 0x9e3779b1
lea ecx, [ebx - 2]
mov edx, dword [esp + 4]
sub ecx, edx
shr eax, 0x13
mov ebp, dword [esp + 0x78]
mov word [ebp + eax*2], cx
imul eax, dword [ebx], 0x9e3779b1
shr eax, 0x13
movzx edi, word [ebp + eax*2]
mov ecx, ebx
sub ecx, edx
mov word [ebp + eax*2], cx
cmp dword [esp + 0xc], edi
ja 0x47af69
add edi, edx
mov eax, dword [edi]
cmp eax, dword [ebx]
jne 0x47af69
mov dword [esp], edi
lea ebp, [esi + 1]
mov byte [esi], 0
mov ecx, esi
mov edi, dword [esp + 0x18]
jmp 0x47b230
mov edi, dword [esp + 0x18]
cmp ebx, dword [esp + 0x48]
jae 0x47b3f8
movzx edx, byte [edx]
mov byte [esp], dl
movzx edx, byte [esp]
cmp dl, byte [ebx]
mov edx, 0
sete dl
add ebx, edx
sub ebx, eax
jmp 0x47b2c7
mov ebx, eax
cmp ebx, dword [esp + 0x14]
jb 0x47b272
jmp 0x47b295
mov eax, ebp
sub eax, edi
mov dword [esp + 4], eax
lea eax, [ebx + ebp]
add eax, 0xfffffff5
mov dword [esp + 0xc], eax
lea eax, [ebx + ebp]
add eax, 0xfffffffb
mov dword [esp + 0x4c], eax
imul eax, dword [ebp], 0x9e3779b1
shr eax, 0x13
mov dword [esp + 0x20], edi
mov word [edx + eax*2], di
mov edi, dword [esp + 0x44]
mov eax, edi
shl eax, 6
lea edx, [esi - 8]
mov dword [esp + 0x10], edx
lea edx, [esi - 6]
mov dword [esp + 0x48], edx
mov esi, eax
or esi, 1
lea eax, [ebp + 2]
mov edx, ebp
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x50], esi
jmp 0x47b482
mov dword [esp + 0x1c], esi
lea eax, [edx + 2]
cmp eax, dword [esp + 0xc]
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x50]
ja 0x47b887
lea ebp, [edx + 1]
mov dword [esp + 0x38], edx
mov ecx, dword [edx + 1]
mov edx, esi
jmp 0x47b4ab
mov eax, edi
add eax, ebp
lea ecx, [edx + 1]
shr edx, 6
mov edi, edx
mov edx, ecx
cmp eax, dword [esp + 0xc]
mov ecx, dword [esp]
ja 0x47ba48
mov dword [esp + 0x14], ebp
mov ebp, eax
imul eax, ecx, 0x9e3779b1
shr eax, 0x13
mov ecx, dword [esp + 0x78]
movzx ecx, word [ecx + eax*2]
mov ebx, dword [esp + 0x14]
sub ebx, dword [esp + 4]
mov esi, dword [ebp]
mov dword [esp], esi
mov esi, dword [esp + 0x78]
mov word [esi + eax*2], bx
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x20], ecx
ja 0x47b490
mov eax, dword [esp + 4]
mov eax, dword [eax + ecx]
cmp eax, dword [ebx]
jne 0x47b490
add ecx, dword [esp + 4]
mov dword [esp + 8], ecx
mov eax, ebx
mov ecx, dword [esp + 0x38]
sub eax, ecx
lea esi, [eax + 0xef]
lea ebp, [eax - 0xf]
mov dh, bl
shl dh, 4
mov dl, cl
shl dl, 4
sub dh, dl
xor edi, edi
mov dword [esp + 0x30], ebp
nop dword [eax + eax]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x28], ebp
mov ecx, edi
mov dl, dh
mov dword [esp + 0x24], eax
mov eax, dword [esp + 8]
add eax, edi
mov esi, dword [esp + 0x14]
lea ebx, [esi + edi]
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x7c]
mov dword [esp], ebx
jbe 0x47b591
cmp ebx, dword [esp + 0x38]
jbe 0x47b591
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + ecx - 1]
mov byte [esp + 0x40], al
mov eax, dword [esp + 0x3c]
lea esi, [eax - 1]
mov eax, dword [esp + 0x28]
lea ebp, [eax - 1]
lea edi, [ecx - 1]
mov dh, dl
add dh, 0xf0
mov eax, dword [esp + 0x24]
dec eax
mov ebx, dword [esp + 8]
mov byte [esp + 0x2c], dl
mov dl, byte [esp + 0x40]
cmp dl, byte [ebx + ecx - 1]
mov dl, byte [esp + 0x2c]
mov ebx, dword [esp]
je 0x47b520
mov ebp, ecx
mov eax, ebx
sub eax, dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
lea ecx, [esi + 1]
cmp eax, 0xf
jb 0x47b634
mov eax, dword [esp + 0x30]
add eax, ebp
mov byte [esi], 0xf0
cmp eax, 0xff
jl 0x47b62f
mov ebx, ebp
mov edi, dword [esp + 0x28]
cmp edi, 0x1fd
mov eax, 0x1fd
cmovge edi, eax
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x38]
mov dword [esp + 8], eax
sub eax, edi
add eax, ebp
add eax, 0xef
mov edx, 0x80808081
mul edx
shr edx, 7
mov dword [esp + 0x28], edx
lea eax, [edx + 1]
push eax
push 0xff
push ecx
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x3c]
sub eax, edi
mov ecx, 0x80808081
mul ecx
mov eax, dword [esp + 0x28]
lea ecx, [esi + eax]
add ecx, 2
shr edx, 7
mov eax, edx
shl eax, 8
sub edx, eax
add edx, dword [esp + 8]
lea eax, [edx + ebp]
add eax, 0xfffffef2
mov byte [ecx], al
inc ecx
jmp 0x47b636
mov byte [esi], dl
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
sub eax, ebx
add ebp, ecx
add ebp, eax
lea eax, [ecx + 8]
cmp ebp, eax
mov esi, eax
mov dword [esp + 0x14], ebp
cmova esi, ebp
mov edi, ecx
not edi
add esi, edi
cmp esi, 0x18
jb 0x47b6b5
mov edx, ecx
sub edx, ebx
cmp edx, 0x20
jb 0x47b6b5
shr esi, 3
inc esi
mov edx, esi
and edx, 0xfffffffc
mov ebp, dword [esp + 0x24]
add ebp, ecx
cmp ebp, eax
cmovbe ebp, eax
lea eax, [ebx + edx*8]
mov dword [esp + 8], edx
lea edx, [ecx + edx*8]
add edi, ebp
shr edi, 3
inc edi
and edi, 0xfffffffc
xor ebp, ebp
nop
movups xmm0, xmmword [ebx + ebp*8]
movups xmm1, xmmword [ebx + ebp*8 + 0x10]
movups xmmword [ecx + ebp*8], xmm0
movups xmmword [ecx + ebp*8 + 0x10], xmm1
add ebp, 4
cmp edi, ebp
jne 0x47b690
cmp esi, dword [esp + 8]
mov ecx, dword [esp + 0x14]
jne 0x47b6c0
jmp 0x47b6d2
mov eax, ebx
mov edx, ecx
mov ecx, dword [esp + 0x14]
nop dword [eax]
movsd xmm0, qword [eax]
movsd qword [edx], xmm0
add edx, 8
add eax, 8
cmp edx, ecx
jb 0x47b6c0
mov edx, dword [esp]
mov eax, dword [esp + 0x1c]
mov edi, ecx
mov ebx, dword [esp + 0x18]
nop
mov ecx, edx
sub ecx, ebx
mov word [edi], cx
mov dword [esp + 0x14], edi
lea ebp, [edi + 2]
mov edi, edx
lea ecx, [edx + 4]
lea edx, [ebx + 4]
cmp dword [esp + 0x10], ecx
jbe 0x47b87c
mov esi, dword [ecx]
xor esi, dword [edx]
je 0x47b71e
tzcnt ebx, esi
shr ebx, 3
mov ecx, ebx
or ecx, 4
mov edx, edi
add edx, ecx
movzx ecx, byte [eax]
jmp 0x47b7e0
mov edx, edi
mov esi, ebx
lea ebx, [edi + 8]
add esi, 8
mov edx, esi
nop word [eax + eax]
cmp ebx, dword [esp + 0x10]
jae 0x47b845
mov esi, dword [ebx]
xor esi, dword [edx]
jne 0x47b748
add ebx, 4
add edx, 4
jmp 0x47b730
tzcnt edx, esi
shr edx, 3
add ebx, edx
sub ebx, ecx
mov edx, edi
lea edx, [ebx + edi]
add edx, 4
movzx ecx, byte [eax]
cmp ebx, 0xf
jb 0x47b7e0
add cl, 0xf
mov byte [eax], cl
lea eax, [ebx - 0xf]
mov dword [ebp], 0xffffffff
cmp eax, 0x3fc
jb 0x47b7c1
lea eax, [ebx - 0x40b]
mov edi, edx
mov ecx, 0x80808081
mul ecx
mov esi, edx
mov ebp, dword [esp + 0x14]
lea eax, [ebp + 6]
shr esi, 9
lea ecx, [esi*4 + 4]
push ecx
push 0xff
push eax
call sub.msvcrt.dll_memset
mov edx, edi
add esp, 0xc
lea ebp, [ebp + esi*4 + 6]
imul eax, esi, 0xfffffc04
add eax, ebx
add eax, 0xfffffbf5
movzx ecx, ax
imul ecx, ecx, 0x8081
shr ecx, 0x17
add eax, ecx
mov byte [ebp + ecx], al
lea esi, [ecx + ebp]
inc esi
mov edi, dword [esp + 4]
jmp 0x47b7ea
mov esi, ebp
mov edi, dword [esp + 4]
add bl, cl
mov byte [eax], bl
cmp edx, dword [esp + 0xc]
jae 0x47b883
imul eax, dword [edx - 2], 0x9e3779b1
lea ecx, [edx - 2]
sub ecx, edi
shr eax, 0x13
mov ebx, dword [esp + 0x78]
mov word [ebx + eax*2], cx
imul eax, dword [edx], 0x9e3779b1
shr eax, 0x13
movzx ebp, word [ebx + eax*2]
mov ecx, edx
sub ecx, edi
mov word [ebx + eax*2], cx
cmp dword [esp + 0x20], ebp
ja 0x47b469
mov ebx, ebp
add ebx, edi
mov eax, dword [ebx]
cmp eax, dword [edx]
jne 0x47b469
lea edi, [esi + 1]
mov byte [esi], 0
mov eax, esi
jmp 0x47b6e0
cmp ebx, dword [esp + 0x48]
jae 0x47b859
movzx esi, word [edx]
cmp si, word [ebx]
jne 0x47b859
add ebx, 2
add edx, 2
cmp ebx, dword [esp + 0x4c]
jae 0x47b751
movzx edx, byte [edx]
mov byte [esp], dl
movzx edx, byte [esp]
cmp dl, byte [ebx]
mov edx, 0
sete dl
jmp 0x47b74f
mov ebx, ecx
jmp 0x47b730
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 0x34]
sub ecx, edx
cmp ecx, 0xf
jb 0x479c48
mov ebx, edx
lea eax, [ecx - 0xf]
mov ebp, dword [esp + 0x1c]
mov byte [ebp], 0xf0
mov edi, ecx
lea ecx, [ebp + 1]
cmp eax, 0xff
jb 0x47ba22
lea eax, [edi - 0x10e]
mov edx, 0x80808081
mul edx
mov esi, edx
shr esi, 7
lea eax, [esi + 1]
push eax
push 0xff
push ecx
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, esi
shl eax, 8
lea ecx, [esi + ebp]
add ecx, 2
sub esi, eax
mov edx, edi
lea eax, [edi + esi]
add eax, 0xfffffef2
jmp 0x47ba24
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x30]
sub esi, ebx
mov eax, dword [esp + 0x34]
lea ecx, [eax + esi]
lea eax, [esi + 0xf0]
mov edx, 0x80808081
mul edx
shr edx, 7
lea eax, [edx + ecx]
inc eax
cmp eax, edi
mov eax, 0
ja 0x47b9f9
mov ebp, ebx
cmp esi, 0xf
jb 0x47ba34
mov edi, esi
lea eax, [esi - 0xf]
mov ebx, dword [esp + 0x34]
mov byte [ebx], 0xf0
lea ecx, [ebx + 1]
cmp eax, 0xff
jae 0x479cd4
mov ebx, edi
mov byte [ecx], al
mov esi, ecx
lea eax, [esi + 1]
push ebx
push ebp
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esi + ebx]
inc eax
jmp 0x47b9f2
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x48]
sub ecx, ebx
cmp ecx, 0xf
jb 0x47b9cb
lea eax, [ecx - 0xf]
mov byte [esi], 0xf0
mov edi, ecx
lea ecx, [esi + 1]
cmp eax, 0xff
jb 0x47b9d4
lea eax, [edi - 0x10e]
mov edx, 0x80808081
mul edx
mov ebp, esi
mov esi, edx
shr esi, 7
lea eax, [esi + 1]
push eax
push 0xff
push ecx
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, esi
shl eax, 8
lea ecx, [esi + ebp]
add ecx, 2
sub esi, eax
mov edx, edi
lea eax, [edi + esi]
add eax, 0xfffffef2
jmp 0x47b9d6
mov eax, ecx
shl al, 4
mov byte [esi], al
jmp 0x47b9dc
mov edx, edi
mov byte [ecx], al
mov esi, ecx
mov ecx, edx
lea eax, [esi + 1]
push ecx
push ebx
push eax
mov edi, esi
mov esi, ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [edi + esi]
inc eax
sub eax, dword [esp + 0x80]
add esp, 0x64
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
jmp 0x47a33b
mov ebx, edi
mov edx, dword [esp + 0x28]
mov byte [ecx], al
mov esi, ecx
lea eax, [esi + 1]
push ebx
push edx
jmp 0x47b955
mov edx, edi
mov byte [ecx], al
mov edi, ecx
mov ecx, edx
mov edx, ebx
lea eax, [edi + 1]
push ecx
push edx
push eax
jmp 0x47b9e4
mov ebx, esi
mov eax, ebx
shl al, 4
mov esi, dword [esp + 0x34]
jmp 0x47ae51
xor eax, eax
jmp 0x47b9f9
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
sub ecx, edx
cmp ecx, 0xf
jae 0x47b896
jmp 0x479c48
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 8]
jmp 0x47b8f7
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x2c]
sub edi, ebp
cmp edi, 0xf
jae 0x479cbc
jmp 0x47ae46
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
jmp 0x47ae60