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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x104
mov ebx, ecx
mov ebp, dword [esp + 0x120]
xor edi, edi
test ebp, ebp
jg 0x48ca97
cmp dword [esp + 0x128], 2
je 0x492aa1
mov dword [esp + 0xdc], edx
mov eax, dword [esp + 0x11c]
mov esi, dword [eax]
cmp esi, 0x7e000000
ja 0x492aa1
mov eax, dword [esp + 0x124]
mov edi, dword [esp + 0x118]
add dword [ebx + 0x40000], esi
cmp eax, 0xc
mov ecx, 0xc
cmovl ecx, eax
test eax, eax
mov eax, 9
cmovg eax, ecx
mov dword [esp + 0x8c], eax
lea eax, [eax*4]
mov ecx, dword [eax + eax*2 + 0x6b7568]
mov dword [esp + 0xbc], ecx
cmp dword [eax + eax*2 + 0x6b7564], 0
mov ecx, dword [esp + 0xdc]
lea edx, [ecx + esi - 0xc]
mov dword [esp + 0xd0], edx
mov dword [esp + 0x18], ebx
je 0x48cc5d
lea eax, [eax + eax*2]
add eax, 0x6b7564
movzx ecx, byte [ebx + 0x4001a]
xor edi, edi
mov byte [esp + 0x94], cl
neg cl
mov ecx, 0
sbb ecx, ecx
mov dword [esp + 0xa0], ecx
mov ebx, dword [eax + 8]
push 0x10030
call sub.msvcrt.dll_malloc
add esp, 4
mov ecx, eax
mov dword [esp + 0x54], eax
test eax, eax
je 0x48fae6
mov ecx, dword [esp + 0xdc]
lea eax, [ecx + esi]
mov dword [esp + 0xf4], eax
xor eax, eax
cmp dword [esp + 0x128], 2
setne al
mov edi, dword [esp + 0x118]
add ebp, edi
mov edx, dword [esp + 0x11c]
mov dword [edx], 0
lea eax, [eax + eax*4]
cmp ebx, 0xfff
mov edx, 0xfff
cmovb edx, ebx
mov dword [esp + 0xec], edx
mov dword [esp + 0xa4], ebp
lea eax, [eax + ebp - 5]
mov dword [esp + 0xb8], eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x78], edi
cmp dword [esp + 0xd0], ecx
mov ebx, dword [esp + 0x18]
jae 0x48faef
xor ecx, ecx
mov esi, dword [esp + 0x128]
cmp esi, 2
sete bl
mov edi, dword [esp + 0xf4]
sub edi, dword [esp + 0x5c]
lea eax, [edi + 0xf0]
mov edx, 0x80808081
mul edx
test esi, esi
je 0x492998
shr edx, 7
add edx, edi
mov cl, bl
lea eax, [ecx + ecx*4]
mov esi, dword [esp + 0xb8]
add esi, eax
mov eax, dword [esp + 0x78]
add eax, edx
inc eax
cmp eax, esi
mov ebx, dword [esp + 0x18]
jbe 0x49299c
mov edi, 0
cmp dword [esp + 0x128], 1
je 0x492a4a
mov ecx, esi
mov eax, dword [esp + 0x78]
not eax
lea edi, [eax + esi]
add eax, esi
add eax, 0xf1
shr eax, 8
sub edi, eax
jmp 0x49299c
xor eax, eax
cmp dword [esp + 0x128], 2
setne al
lea edx, [ecx + esi]
mov dword [esp + 0xe8], edx
add ebp, edi
mov edx, dword [esp + 0x11c]
mov dword [edx], 0
lea eax, [eax + eax*4]
mov dword [esp + 0xa4], ebp
lea eax, [eax + ebp - 5]
mov dword [esp + 0xac], eax
mov edx, ecx
mov ebp, edi
cmp esi, 0xd
jb 0x4928a4
mov eax, dword [esp + 0xdc]
mov edx, eax
mov ebp, edi
cmp dword [esp + 0xd0], eax
jb 0x4928a4
mov eax, dword [esp + 0xdc]
lea ecx, [eax + esi]
add ecx, 0xfffffffb
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xe8]
lea edx, [ecx - 8]
mov dword [esp + 8], edx
add ecx, 0xfffffffa
mov dword [esp + 0xc0], ecx
lea ecx, [esi + eax - 5]
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xc8], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x38], 0
xor esi, esi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x70], edi
mov ecx, dword [ebx + 0x40004]
mov dword [esp + 0x98], ecx
mov edx, dword [ebx + 0x40008]
mov esi, dword [ebx + 0x4000c]
mov ebp, dword [ebx + 0x40010]
mov edi, esi
sub edi, ebp
sub ecx, esi
mov dword [esp + 0x64], ecx
mov ecx, edx
sub ecx, ebp
mov dword [esp + 0x74], ecx
mov ecx, 0xfffffffc
sub ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x28], ebp
lea ecx, [ebp + 0x10000]
mov dword [esp + 0xa8], ecx
mov ecx, edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0xcc], edi
lea ecx, [edx + edi]
mov dword [esp + 0x88], ecx
lea ecx, [esi - 4]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0x98]
lea ecx, [ecx + 4]
mov dword [esp + 0x4c], ecx
mov ecx, dword [ebx + 0x40014]
mov dword [esp + 0x6c], ecx
lea ecx, [esi + eax]
lea edx, [esi + eax - 1]
mov dword [esp + 0x84], edx
lea edx, [eax + 4]
mov dword [esp + 0x54], edx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], 0
mov dword [esp + 0xb0], eax
mov ecx, eax
mov dword [esp + 0x14], esi
jmp 0x48ce1f
cmp edi, 4
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
jge 0x48d7ed
inc ecx
inc dword [esp + 0x7c]
dec dword [esp + 0x1c]
inc dword [esp + 0x78]
inc dword [esp + 0x54]
cmp ecx, dword [esp + 0xd0]
ja 0x492899
mov eax, dword [esp + 0x6c]
mov edi, ecx
sub ecx, dword [esp + 0x98]
lea edx, [ecx + esi]
cmp dword [esp + 0xa8], edx
lea ecx, [ecx + esi - 0xffff]
cmova ecx, dword [esp + 0x28]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x10], edi
mov ecx, dword [edi]
mov dword [esp], ecx
mov dword [esp + 0x6c], edx
cmp eax, edx
jae 0x48ceb9
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0x7c]
add edx, ecx
mov ecx, dword [esp + 0x98]
add ecx, eax
sub edx, ecx
test dl, 1
je 0x48cea4
mov edx, dword [esp + 0x64]
imul edx, dword [edx + eax], 0x9e3779b1
shr edx, 0x11
mov esi, eax
sub esi, dword [ebx + edx*4]
cmp esi, 0xffff
mov edi, 0xffff
cmovae esi, edi
movzx edi, ax
mov word [ebx + edi*2 + 0x20000], si
mov dword [ebx + edx*4], eax
inc eax
mov edx, dword [esp + 0x84]
mov esi, dword [esp + 0x7c]
add edx, esi
cmp edx, ecx
jne 0x48d740
mov eax, dword [esp + 0x6c]
mov dword [ebx + 0x40014], eax
mov edx, dword [esp]
movzx eax, dx
mov ecx, edx
shr ecx, 0x10
xor ecx, eax
movzx eax, dl
shr edx, 0x18
xor edx, eax
or edx, ecx
sete byte [esp + 0x60]
cmp dword [esp + 0xbc], 0
jle 0x48d7d0
mov ecx, dword [esp + 0x10]
imul eax, dword [ecx], 0x9e3779b1
shr eax, 0x11
mov edx, dword [ebx + eax*4]
mov eax, edx
mov dword [esp + 4], edx
cmp edx, dword [esp + 0x34]
jb 0x48d7e0
lea eax, [ecx + 4]
mov dword [esp + 0x3c], eax
lea eax, [ecx + 8]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x20], 0
mov edi, 3
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x30], eax
xor eax, eax
mov esi, dword [esp + 0x14]
nop dword [eax]
mov ecx, esi
sub ecx, dword [esp + 4]
mov dword [esp + 0x94], ecx
jbe 0x48cfe0
mov ecx, dword [esp + 4]
cmp ecx, dword [esp + 0x9c]
ja 0x48d210
mov edx, dword [esp + 4]
sub edx, dword [esp + 0x28]
add edx, dword [esp + 0x2c]
mov ecx, dword [esp]
cmp dword [edx], ecx
jne 0x48d210
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 0x94]
mov esi, dword [esp + 0x10]
lea ebp, [esi + ecx]
mov ecx, dword [esp + 0x44]
cmp ebp, ecx
mov esi, ebp
cmova esi, ecx
lea ecx, [edx + 4]
mov dword [esp + 0x50], esi
lea edi, [esi - 3]
mov esi, dword [esp + 0x3c]
cmp edi, esi
jbe 0x48d6ef
mov esi, dword [esi]
xor esi, dword [ecx]
je 0x48d03d
tzcnt edx, esi
shr edx, 3
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
lea ecx, [edx + 4]
cmp ebp, dword [esp + 0x44]
jb 0x48d0bd
jmp 0x48d1ec
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 4]
lea ebp, [ecx + edx]
mov ecx, dword [esp + 0x10]
movzx ecx, word [ecx + edi - 1]
cmp cx, word [edi + ebp - 1]
jne 0x48d210
mov ecx, dword [esp]
cmp dword [ebp], ecx
jne 0x48d210
lea edx, [ebp + 4]
mov ecx, dword [esp + 0x3c]
cmp dword [esp + 8], ecx
jbe 0x48d0fe
mov ecx, dword [ecx]
xor ecx, dword [edx]
je 0x48d0f7
tzcnt ecx, ecx
shr ecx, 3
add ecx, 4
cmp ecx, edi
jg 0x48d1fb
jmp 0x48d210
add edx, 8
mov ecx, edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x24], ebp
cmp edx, edi
jae 0x48d073
mov esi, dword [esp + 0x1c]
add esi, edx
nop word cs:[eax + eax]
mov ebp, dword [edx]
xor ebp, dword [ecx]
jne 0x48d09b
add edx, 4
add ecx, 4
add esi, 4
cmp edx, edi
jb 0x48d060
mov esi, dword [esp + 0x50]
dec esi
cmp edx, esi
jae 0x48d632
movzx esi, word [ecx]
cmp si, word [edx]
mov edi, dword [esp + 0xc]
jne 0x48d636
add edx, 2
add ecx, 2
jmp 0x48d636
tzcnt edx, ebp
shr edx, 3
add edx, esi
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x24]
lea ecx, [edx + 4]
cmp ebp, dword [esp + 0x44]
jae 0x48d1ec
mov ebp, dword [esp + 0x10]
add edx, ebp
add edx, 4
mov ebp, dword [esp + 0x50]
cmp edx, ebp
jne 0x48d1ec
mov edx, ebp
mov edi, dword [esp + 0x98]
mov ebp, edi
cmp dword [esp + 8], edx
jbe 0x48d158
mov esi, edx
mov edx, dword [edx]
xor edx, dword [edi]
je 0x48d151
tzcnt edx, edx
shr edx, 3
jmp 0x48d1e2
lea edx, [ebp + 8]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0xc], edi
cmp ecx, dword [esp + 8]
jae 0x48d129
mov esi, dword [esp + 0x1c]
add esi, ecx
nop
mov edi, dword [ecx]
xor edi, dword [edx]
jne 0x48d1bf
add ecx, 4
add edx, 4
add esi, 4
cmp ecx, dword [esp + 8]
jb 0x48d110
cmp ecx, dword [esp + 0xc0]
jae 0x48d672
movzx esi, word [edx]
cmp si, word [ecx]
mov edi, dword [esp + 0xc]
jne 0x48d676
add ecx, 2
add edx, 2
jmp 0x48d676
lea edx, [esi + 4]
mov ebp, dword [esp + 0x4c]
cmp edx, dword [esp + 8]
jae 0x48d196
mov esi, dword [esp + 0x78]
sub esi, dword [esp + 4]
mov edi, dword [esp + 0xe0]
cmp edi, esi
cmovb esi, edi
mov edi, edx
sub edi, esi
nop word cs:[eax + eax]
mov esi, dword [edx]
xor esi, dword [ebp]
jne 0x48d1d9
add edx, 4
add ebp, 4
add edi, 4
cmp edx, dword [esp + 8]
jb 0x48d180
cmp edx, dword [esp + 0xc0]
jae 0x48d6ac
movzx esi, word [ebp]
cmp si, word [edx]
mov edi, dword [esp + 0xc]
jne 0x48d6b0
add edx, 2
add ebp, 2
jmp 0x48d6b0
tzcnt ecx, edi
shr ecx, 3
add ecx, esi
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
add ecx, 4
cmp ecx, edi
jg 0x48d1fb
jmp 0x48d210
tzcnt edx, esi
shr edx, 3
add edx, edi
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
add ecx, edx
cmp ecx, edi
jle 0x48d210
mov edx, dword [esp + 0x64]
mov edi, dword [esp + 4]
lea ebp, [edx + edi]
mov dword [esp + 0x40], ebp
mov edi, ecx
nop word cs:[eax + eax]
movzx ecx, word [esp + 4]
mov edx, dword [esp + 0x18]
movzx ecx, word [edx + ecx*2 + 0x20000]
cmp dword [esp + 0xbc], 0x81
jl 0x48d3c0
cmp cx, 1
jne 0x48d3c0
cmp dword [esp + 0x20], 0
je 0x48d318
cmp dword [esp + 0x20], 2
jne 0x48d3c0
mov edx, dword [esp + 4]
lea ebp, [edx - 1]
cmp ebp, dword [esp + 0x34]
jb 0x48d3c0
mov dword [esp + 0x20], 2
cmp dword [esp + 0x94], 3
jb 0x48d3c0
mov dword [esp + 0xc], edi
cmp ebp, esi
mov edx, esi
mov esi, dword [esp + 0x64]
cmovb esi, dword [esp + 0x74]
mov edi, ebp
mov ebp, dword [esp]
cmp dword [esi + edi], ebp
jne 0x48d3ac
mov ebp, edi
lea ecx, [esi + edi]
cmp edi, edx
mov edi, dword [esp + 0x44]
cmovb edi, dword [esp + 0x88]
mov dword [esp + 0x20], ecx
lea edx, [ecx + 4]
mov dword [esp + 0x94], edi
add edi, 0xfffffffd
mov ecx, edx
cmp edi, edx
jbe 0x48d2e5
mov ecx, dword [esp + 4]
lea ebx, [ecx + esi]
add ebx, 3
mov ecx, edx
nop
mov esi, dword [ecx]
xor esi, dword [esp]
jne 0x48d3ee
add ecx, 4
add ebx, 4
cmp ecx, edi
jb 0x48d2d0
mov edi, dword [esp + 0x94]
cmp ecx, edi
mov esi, dword [esp + 0x14]
jae 0x48d3fb
sub edi, ecx
mov ebx, dword [esp]
cmp byte [ecx], bl
jne 0x48d3fb
inc ecx
shr ebx, 8
dec edi
jne 0x48d2fd
mov ecx, dword [esp + 0x94]
jmp 0x48d3fb
mov dword [esp + 0x20], 1
cmp byte [esp + 0x60], 0
je 0x48d3c0
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x3c]
mov edx, esi
cmp dword [esp + 8], esi
jbe 0x48d702
nop
mov esi, dword [edx]
xor esi, dword [esp]
jne 0x48d383
add edx, 4
add eax, 4
cmp edx, dword [esp + 8]
jb 0x48d340
mov esi, dword [esp + 0x44]
cmp edx, esi
jae 0x48d38c
mov ebp, edi
sub esi, eax
lea edi, [edx + esi]
mov eax, dword [esp]
nop word cs:[eax + eax]
cmp byte [edx], al
jne 0x48d37d
inc edx
shr eax, 8
dec esi
jne 0x48d370
mov edx, edi
mov eax, edx
mov edi, ebp
jmp 0x48d38c
tzcnt edx, esi
shr edx, 3
add eax, edx
mov esi, dword [esp + 0x14]
sub eax, dword [esp + 0x3c]
add eax, 4
mov dword [esp + 0x20], 2
cmp dword [esp + 0x20], 2
je 0x48d252
jmp 0x48d3c0
mov esi, edx
mov edi, dword [esp + 0xc]
nop word cs:[eax + eax]
movzx ecx, cx
sub dword [esp + 4], ecx
mov ecx, dword [esp + 4]
cmp ecx, dword [esp + 0x34]
jb 0x48cdf0
mov edx, dword [esp + 0x30]
lea ecx, [edx - 1]
cmp edx, 1
mov dword [esp + 0x30], ecx
jg 0x48cf40
jmp 0x48cdf0
tzcnt ecx, esi
shr ecx, 3
add ecx, ebx
mov esi, dword [esp + 0x14]
sub ecx, edx
lea edx, [ecx + 4]
cmp ebp, esi
mov edi, dword [esp + 0x20]
mov dword [esp + 4], edx
jae 0x48d470
add edx, edi
cmp edx, dword [esp + 0x88]
jne 0x48d493
shl ecx, 3
mov edx, dword [esp]
rol edx, cl
mov ecx, dword [esp + 0x98]
cmp dword [esp + 8], ecx
jbe 0x48d722
mov esi, ecx
nop word cs:[eax + eax]
mov ebx, dword [ecx]
xor ebx, edx
jne 0x48d479
add ecx, 4
add esi, 4
cmp ecx, dword [esp + 8]
jb 0x48d440
mov ebx, dword [esp + 0x44]
cmp ecx, ebx
jae 0x48d482
sub ebx, esi
lea esi, [ecx + ebx]
cmp byte [ecx], dl
jne 0x48d46c
inc ecx
shr edx, 8
dec ebx
jne 0x48d45f
mov ecx, esi
mov esi, ecx
jmp 0x48d482
mov ecx, dword [esp + 0x98]
jmp 0x48d497
tzcnt ecx, ebx
shr ecx, 3
add esi, ecx
mov ecx, dword [esp + 4]
sub ecx, dword [esp + 0x98]
add ecx, esi
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp]
mov dword [esp + 0x90], edx
lea edx, [ecx + 4]
mov ebx, edi
nop word cs:[eax + eax]
mov esi, ebx
cmp ebx, edx
jb 0x48d4c1
lea ebx, [esi - 4]
mov edi, dword [esp]
cmp dword [esi - 4], edi
je 0x48d4b0
cmp esi, ecx
jbe 0x48d719
lea edx, [esp + 0x93]
mov edi, dword [esp + 0x20]
nop word cs:[eax + eax]
movzx ebx, byte [esi - 1]
cmp bl, byte [edx]
jne 0x48d4f0
dec esi
dec edx
cmp esi, ecx
ja 0x48d4e0
mov esi, ecx
mov edx, edi
sub edx, esi
mov esi, dword [esp + 0x14]
cmp ebp, esi
jb 0x48d581
sub edi, edx
cmp edi, dword [esp + 0x98]
jne 0x48d581
cmp esi, dword [esp + 0x28]
jbe 0x48d581
mov ecx, edx
neg ecx
shl ecx, 3
mov ebx, dword [esp]
rol ebx, cl
mov dword [esp + 0x90], ebx
mov esi, dword [esp + 0xcc]
nop dword [eax + eax]
cmp esi, 4
jl 0x48d6dc
lea ecx, [esi - 4]
mov edi, dword [esp + 0x2c]
cmp dword [edi + esi - 4], ebx
mov esi, ecx
je 0x48d530
mov esi, dword [esp + 0x2c]
add ecx, esi
add ecx, 4
lea esi, [esp + 0x93]
nop dword [eax + eax]
movzx ebx, byte [ecx - 1]
cmp bl, byte [esi]
jne 0x48d574
dec ecx
dec esi
cmp ecx, dword [esp + 0x2c]
ja 0x48d560
mov ecx, dword [esp + 0x2c]
add edx, dword [esp + 0x88]
sub edx, ecx
mov esi, dword [esp + 0x14]
mov edi, ebp
sub edi, edx
mov ecx, dword [esp + 0x34]
cmp edi, ecx
cmovbe edi, ecx
mov ecx, ebp
mov ebx, edi
sub ecx, edi
mov edx, dword [esp + 4]
add ecx, edx
cmp edx, eax
ja 0x48d5c7
cmp ecx, eax
jb 0x48d5c7
sub ebp, eax
add edx, ebp
mov ecx, edx
not ecx
add ecx, esi
cmp ecx, 3
cmovb edx, esi
mov dword [esp + 0x20], 2
mov dword [esp + 4], edx
mov edi, dword [esp + 0xc]
jmp 0x48d3c7
mov edx, ebx
not edx
add edx, esi
mov dword [esp + 0x20], 2
cmp edx, 3
jae 0x48d5e7
mov dword [esp + 4], esi
mov edi, dword [esp + 0xc]
jmp 0x48d3c7
cmp ecx, eax
cmovae ecx, eax
mov edi, dword [esp + 0xc]
cmp edi, ecx
jae 0x48d612
mov edx, dword [esp + 0x6c]
sub edx, ebx
cmp edx, 0xffff
ja 0x48cdf0
mov edx, dword [esp + 0x64]
add edx, ebx
mov dword [esp + 0x40], edx
mov edi, ecx
movzx ecx, bx
mov edx, dword [esp + 0x18]
movzx ecx, word [edx + ecx*2 + 0x20000]
sub ebx, ecx
mov dword [esp + 4], ebx
jae 0x48d3c7
jmp 0x48cdf0
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x24]
cmp edx, dword [esp + 0x50]
jae 0x48d65c
movzx ecx, byte [ecx]
mov byte [esp + 0x24], cl
movzx ecx, byte [esp + 0x24]
cmp cl, byte [edx]
mov ecx, 0
sete cl
add edx, ecx
sub edx, dword [esp + 0x3c]
lea ecx, [edx + 4]
cmp ebp, dword [esp + 0x44]
jb 0x48d0bd
jmp 0x48d1ec
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
cmp ecx, dword [esp + 0x44]
jae 0x48d698
movzx edx, byte [edx]
mov byte [esp + 0x50], dl
movzx edx, byte [esp + 0x50]
cmp dl, byte [ecx]
mov edx, 0
sete dl
add ecx, edx
sub ecx, dword [esp + 0x3c]
add ecx, 4
cmp ecx, edi
jg 0x48d1fb
jmp 0x48d210
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
cmp edx, dword [esp + 0x44]
jae 0x48d6d3
movzx ebx, byte [ebp]
mov byte [esp + 0x24], bl
movzx ebx, byte [esp + 0x24]
cmp bl, byte [edx]
mov ebx, 0
sete bl
add edx, ebx
sub edx, dword [esp + 0x50]
jmp 0x48d1ea
mov ecx, dword [esp + 0x2c]
add ecx, esi
test esi, esi
jg 0x48d551
jmp 0x48d574
mov edx, esi
mov dword [esp + 0x24], ebp
cmp edx, edi
jb 0x48d04e
jmp 0x48d073
mov edx, dword [esp + 0x3c]
mov eax, edx
mov esi, dword [esp + 0x44]
cmp edx, esi
jb 0x48d35b
jmp 0x48d38c
mov edi, dword [esp + 0x20]
jmp 0x48d4f0
mov esi, ecx
mov ebx, dword [esp + 0x44]
cmp ecx, ebx
jb 0x48d45a
jmp 0x48d482
inc eax
jmp 0x48d76e
movzx esi, ax
mov word [ebx + esi*2 + 0x20000], dx
mov dword [ebx + ecx*4], eax
lea ecx, [eax + 2]
inc eax
cmp eax, dword [esp + 0x6c]
mov eax, ecx
jae 0x48ceb9
lea ecx, [eax - 1]
mov edx, dword [esp + 0x64]
imul edx, dword [edx + eax - 1], 0x9e3779b1
shr edx, 0x11
mov esi, ecx
sub esi, dword [ebx + edx*4]
cmp esi, 0xffff
jb 0x48d792
mov esi, 0xffff
movzx edi, cx
mov word [ebx + edi*2 + 0x20000], si
mov dword [ebx + edx*4], ecx
mov ecx, dword [esp + 0x64]
imul ecx, dword [ecx + eax], 0x9e3779b1
shr ecx, 0x11
mov edx, eax
sub edx, dword [ebx + ecx*4]
cmp edx, 0xffff
jb 0x48d750
mov edx, 0xffff
jmp 0x48d750
mov ecx, dword [esp + 0x10]
jmp 0x48d7e4
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
jmp 0x48ce01
mov eax, dword [esp + 0x40]
mov dword [esp + 0x68], eax
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xa0], edi
mov esi, ecx
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x8c], edx
mov dword [esp + 0x28], esi
lea edx, [esi + edi]
cmp edx, dword [esp + 0xd0]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x84], edi
ja 0x48f41e
mov dword [esp + 0x10], ecx
lea eax, [edx - 2]
mov ecx, dword [ebx + 0x40004]
mov esi, dword [ebx + 0x4000c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x7c], ecx
sub eax, ecx
lea edi, [eax + esi]
mov ebp, dword [ebx + 0x40010]
lea ecx, [ebp + 0x10000]
cmp ecx, edi
lea eax, [eax + esi - 0xffff]
mov dword [esp + 0x60], ebp
cmova eax, ebp
mov dword [esp + 0x94], eax
mov dword [esp + 0x2c], esi
neg esi
mov dword [esp + 4], esi
mov eax, dword [edx - 2]
mov dword [esp], eax
mov ecx, dword [ebx + 0x40014]
mov dword [esp + 0x98], edi
cmp ecx, edi
jae 0x48d8ed
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 4]
add edx, eax
jmp 0x48d8cf
movzx ebx, cx
mov ebp, dword [esp + 0x18]
mov word [ebp + ebx*2 + 0x20000], di
mov ebx, ebp
mov dword [ebp + esi*4], ecx
inc ecx
cmp ecx, dword [esp + 0x98]
jae 0x48d8ed
imul esi, dword [edx + ecx], 0x9e3779b1
shr esi, 0x11
mov edi, ecx
sub edi, dword [ebx + esi*4]
cmp edi, 0xffff
jb 0x48d8b0
mov edi, 0xffff
jmp 0x48d8b0
mov ebp, dword [ebx + 0x40008]
mov ecx, dword [esp + 0x98]
mov dword [ebx + 0x40014], ecx
mov eax, dword [esp]
movzx ecx, ax
mov edx, eax
shr edx, 0x10
xor edx, ecx
movzx ecx, al
shr eax, 0x18
xor eax, ecx
mov edi, dword [esp + 0x4c]
imul ecx, dword [edi - 2], 0x9e3779b1
shr ecx, 0x11
or eax, edx
mov ecx, dword [ebx + ecx*4]
sete byte [esp + 0x78]
cmp ecx, dword [esp + 0x94]
jb 0x48f42f
mov dword [esp + 0x34], ebp
mov ebp, dword [esp + 0x60]
mov eax, ebp
neg eax
mov ebx, dword [esp + 0x2c]
sub ebx, ebp
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x28]
sub ecx, dword [esp + 0x14]
mov dword [esp + 0x9c], ecx
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 4]
lea ecx, [edx + esi]
mov dword [esp + 0x50], ecx
add eax, dword [esp + 0x34]
mov dword [esp + 0x38], eax
lea eax, [edx + esi]
dec eax
mov dword [esp + 0xcc], eax
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x28]
add eax, ecx
mov edx, 0xfffffffe
sub edx, eax
mov dword [esp + 0x88], edx
mov esi, dword [esp + 0x2c]
add eax, esi
add eax, 0xfffffffe
mov dword [esp + 0xd8], eax
not ebp
mov edx, dword [esp + 0x34]
add ebp, edx
mov dword [esp + 0x74], ebp
mov eax, dword [esp + 0x80]
mov dword [esp + 0x40], eax
mov dword [esp + 0xd4], ebx
lea eax, [edx + ebx]
mov dword [esp + 0xb4], eax
lea eax, [edi + 2]
mov dword [esp + 0x1c], eax
lea eax, [edi + 6]
mov dword [esp + 0xa8], eax
lea eax, [esi - 4]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x7c]
lea eax, [eax + 4]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x28]
lea eax, [ecx + eax - 3]
mov dword [esp + 4], eax
mov dword [esp + 0x20], 0
mov edi, ecx
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x64], eax
mov dword [esp + 0x3c], 0
nop word [eax + eax]
sub esi, ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x6c], esi
jbe 0x48daa0
cmp ecx, dword [esp + 0x24]
ja 0x48ddc0
mov ebp, ecx
sub ebp, dword [esp + 0x60]
mov eax, dword [esp + 0x34]
lea ecx, [eax + ebp]
mov eax, dword [esp]
cmp dword [ecx], eax
jne 0x48db50
mov eax, dword [esp + 0x14]
lea edx, [eax + esi]
mov eax, dword [esp + 0x44]
cmp edx, eax
mov dword [esp + 0x54], edx
cmova edx, eax
lea ebx, [ecx + 4]
mov dword [esp + 0x5c], edx
lea eax, [edx - 3]
mov edx, dword [esp + 0x1c]
cmp eax, edx
jbe 0x48e260
mov esi, dword [edx]
xor esi, dword [ebx]
je 0x48db59
tzcnt ecx, esi
shr ecx, 3
jmp 0x48dbc6
mov eax, dword [esp + 0x50]
lea ebp, [eax + ecx]
mov edx, dword [esp + 0x28]
movzx eax, word [edx + edi - 1]
mov ecx, dword [esp + 0x9c]
add ecx, ebp
cmp ax, word [edi + ecx - 1]
jne 0x48db50
mov eax, dword [esp]
cmp dword [ebp], eax
jne 0x48db50
cmp dword [esp + 0x14], edx
je 0x48dc18
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0x7c]
sub eax, ebp
mov ecx, dword [esp + 0x9c]
cmp ecx, eax
cmovg eax, ecx
mov esi, eax
sar esi, 0x1f
and esi, eax
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0x30]
add ecx, edx
xor ebx, ebx
nop word cs:[eax + eax]
cmp ebx, eax
jle 0x48db29
lea edi, [ebx - 1]
mov edx, dword [esp + 4]
movzx edx, byte [edx + ebx]
cmp dl, byte [ecx + ebx]
mov ebx, edi
je 0x48db10
inc edi
mov esi, edi
mov edi, dword [esp + 0xc]
lea eax, [ebp + 4]
mov ebx, dword [esp + 0x1c]
cmp dword [esp + 8], ebx
ja 0x48dc27
jmp 0x48dc43
mov ecx, dword [esp + 0x30]
jmp 0x48ddc0
add ecx, 8
mov ebx, ecx
mov ecx, dword [esp + 0xa8]
mov edx, edi
cmp ecx, eax
jae 0x48db93
mov esi, dword [esp + 0x88]
lea edi, [esi + ecx]
nop word cs:[eax + eax]
mov esi, dword [ecx]
xor esi, dword [ebx]
jne 0x48dbbb
add ecx, 4
add ebx, 4
add edi, 4
cmp ecx, eax
jb 0x48db80
mov esi, dword [esp + 0x5c]
lea eax, [esi - 1]
cmp ecx, eax
jae 0x48e1eb
movzx eax, word [ebx]
cmp ax, word [ecx]
mov edi, edx
jne 0x48e1ed
add ecx, 2
add ebx, 2
jmp 0x48e1ed
tzcnt ecx, esi
shr ecx, 3
add ecx, edi
mov edi, edx
mov esi, dword [esp + 0x5c]
mov eax, dword [esp + 0x54]
lea ebx, [ecx + 4]
cmp eax, dword [esp + 0x44]
mov dword [esp + 0xc], edi
jae 0x48dd45
mov eax, dword [esp + 0x14]
add eax, ecx
add eax, 4
cmp eax, esi
jne 0x48dd45
mov edx, dword [esp + 0x7c]
mov edi, edx
mov ecx, esi
cmp dword [esp + 8], esi
jbe 0x48dca9
mov eax, dword [esi]
xor eax, dword [edx]
je 0x48dc9f
tzcnt ecx, eax
shr ecx, 3
jmp 0x48dd43
xor esi, esi
lea eax, [ebp + 4]
mov ebx, dword [esp + 0x1c]
cmp dword [esp + 8], ebx
jbe 0x48dc43
mov ecx, dword [ebx]
xor ecx, dword [eax]
je 0x48dc39
tzcnt ebx, ecx
shr ebx, 3
jmp 0x48dd21
lea eax, [ebp + 8]
mov ebx, dword [esp + 0xa8]
mov edx, edi
cmp ebx, dword [esp + 8]
jae 0x48dc79
mov ecx, dword [esp + 0x88]
add ecx, ebx
nop word cs:[eax + eax]
mov edi, dword [ebx]
xor edi, dword [eax]
jne 0x48dd16
add ebx, 4
add eax, 4
add ecx, 4
cmp ebx, dword [esp + 8]
jb 0x48dc60
cmp ebx, dword [esp + 0xc0]
jae 0x48e21b
movzx ecx, word [eax]
cmp cx, word [ebx]
mov edi, edx
jne 0x48e21d
add ebx, 2
add eax, 2
jmp 0x48e21d
lea ecx, [esi + 4]
mov edi, dword [esp + 0x80]
cmp ecx, dword [esp + 8]
jae 0x48dce5
mov edx, dword [esp + 0xd8]
sub edx, dword [esp + 0x30]
mov eax, dword [esp + 0xe0]
cmp edx, eax
cmovae edx, eax
mov eax, ecx
sub eax, edx
nop word [eax + eax]
mov esi, dword [ecx]
xor esi, dword [edi]
jne 0x48dd3a
add ecx, 4
add edi, 4
add eax, 4
cmp ecx, dword [esp + 8]
jb 0x48dcd0
cmp ecx, dword [esp + 0xc0]
jae 0x48dcfc
movzx eax, word [edi]
cmp ax, word [ecx]
jne 0x48dcfc
add ecx, 2
add edi, 2
mov esi, dword [esp + 0x5c]
cmp ecx, dword [esp + 0x44]
jae 0x48dd12
movzx eax, byte [edi]
xor edx, edx
cmp al, byte [ecx]
sete dl
add ecx, edx
sub ecx, esi
jmp 0x48dd43
tzcnt ebx, edi
shr ebx, 3
add ebx, ecx
mov edi, edx
mov ecx, dword [esp + 0x30]
sub ebx, esi
add ebx, 4
cmp ebx, edi
jle 0x48ddc0
add ebp, esi
mov dword [esp + 0x40], ebp
jmp 0x48ddb1
tzcnt ecx, esi
shr ecx, 3
add ecx, eax
add ebx, ecx
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
je 0x48dd99
neg ebp
mov eax, dword [esp + 0x9c]
cmp eax, ebp
cmovg ebp, eax
mov esi, ebp
sar esi, 0x1f
and esi, ebp
mov eax, dword [esp + 0x74]
add eax, ecx
xor ecx, ecx
cmp ecx, ebp
jle 0x48dd89
lea edi, [ecx - 1]
mov edx, dword [esp + 4]
movzx edx, byte [edx + ecx]
cmp dl, byte [eax + ecx]
mov ecx, edi
je 0x48dd70
inc edi
mov esi, edi
mov ecx, dword [esp + 0x30]
sub ebx, esi
mov edi, dword [esp + 0xc]
cmp ebx, edi
jg 0x48dda5
jmp 0x48ddc0
xor esi, esi
sub ebx, esi
mov edi, dword [esp + 0xc]
cmp ebx, edi
jle 0x48ddc0
mov eax, dword [esp + 0x50]
add eax, ecx
add eax, esi
mov dword [esp + 0x40], eax
add esi, dword [esp + 0x14]
mov dword [esp + 0x10], esi
mov edi, ebx
nop dword [eax + eax]
mov dword [esp + 0xc], edi
movzx eax, cx
mov ebx, dword [esp + 0x18]
movzx edi, word [ebx + eax*2 + 0x20000]
cmp dword [esp + 0xbc], 0x81
jl 0x48ded0
cmp di, 1
mov esi, dword [esp + 0x2c]
jne 0x48df70
cmp dword [esp + 0x20], 0
je 0x48ded9
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x20], 2
jne 0x48df70
lea ebp, [ecx - 1]
cmp ebp, dword [esp + 0x94]
jb 0x48df70
mov dword [esp + 0x20], 2
cmp dword [esp + 0x6c], 3
jb 0x48df70
mov edx, ecx
cmp ebp, esi
mov eax, dword [esp + 0x50]
cmovb eax, dword [esp + 0x38]
mov ecx, dword [esp]
cmp dword [eax + ebp], ecx
jne 0x48df65
lea ecx, [eax + ebp]
mov dword [esp + 0x20], ebp
cmp ebp, esi
mov ebp, ecx
mov ecx, dword [esp + 0x44]
cmovb ecx, dword [esp + 0xb4]
lea edi, [ebp + 4]
mov dword [esp + 0x6c], ecx
lea ebx, [ecx - 3]
mov ecx, edi
cmp ebx, edi
jbe 0x48de95
lea esi, [edx + eax]
add esi, 3
mov ecx, edi
nop dword [eax + eax]
mov eax, dword [ecx]
xor eax, dword [esp]
jne 0x48dfa3
add ecx, 4
add esi, 4
cmp ecx, ebx
jb 0x48de80
mov edx, dword [esp + 0x6c]
cmp ecx, edx
mov eax, dword [esp + 0x7c]
jae 0x48dfb0
mov esi, edx
sub esi, ecx
mov ebx, dword [esp]
cmp byte [ecx], bl
jne 0x48dfb0
inc ecx
shr ebx, 8
dec esi
jne 0x48deac
mov ecx, edx
jmp 0x48dfb0
mov esi, dword [esp + 0x2c]
jmp 0x48df70
mov dword [esp + 0x20], 1
cmp byte [esp + 0x78], 0
je 0x48df70
mov eax, dword [esp + 0x1c]
cmp dword [esp + 8], eax
jbe 0x48e271
mov edx, eax
nop dword [eax]
mov ecx, dword [eax]
xor ecx, dword [esp]
jne 0x48df36
add eax, 4
add edx, 4
cmp eax, dword [esp + 8]
jb 0x48df00
mov ecx, dword [esp + 0x44]
cmp eax, ecx
jae 0x48df3f
sub ecx, edx
lea edx, [eax + ecx]
mov ebx, dword [esp]
cmp byte [eax], bl
jne 0x48df30
inc eax
shr ebx, 8
dec ecx
jne 0x48df23
mov eax, edx
mov ebx, dword [esp + 0x18]
jmp 0x48df41
tzcnt eax, ecx
shr eax, 3
add edx, eax
mov eax, edx
mov ecx, dword [esp + 0x30]
sub eax, dword [esp + 0x1c]
add eax, 4
mov dword [esp + 0x20], 2
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x20], 2
je 0x48de10
jmp 0x48df70
mov ecx, edx
nop word [eax + eax]
movzx eax, di
sub ecx, eax
mov edi, dword [esp + 0xc]
cmp ecx, dword [esp + 0x94]
jb 0x48e2a0
mov edx, ecx
mov ecx, dword [esp + 0x64]
lea eax, [ecx - 1]
cmp ecx, 1
mov ecx, edx
mov dword [esp + 0x64], eax
jg 0x48da30
jmp 0x48e2a0
tzcnt ecx, eax
shr ecx, 3
add ecx, esi
mov eax, dword [esp + 0x7c]
sub ecx, edi
lea edi, [ecx + 4]
mov edx, dword [esp + 0x20]
cmp edx, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
jae 0x48e037
lea eax, [edi + ebp]
cmp eax, dword [esp + 0xb4]
je 0x48dfd3
mov eax, edx
jmp 0x48e037
shl ecx, 3
mov eax, dword [esp]
rol eax, cl
mov ecx, dword [esp + 0x7c]
cmp dword [esp + 8], ecx
jbe 0x48e28d
mov esi, ecx
nop dword [eax + eax]
mov ebx, dword [ecx]
xor ebx, eax
jne 0x48e020
add ecx, 4
add esi, 4
cmp ecx, dword [esp + 8]
jb 0x48dff0
mov ebx, dword [esp + 0x44]
cmp ecx, ebx
jae 0x48e029
sub ebx, esi
lea esi, [ecx + ebx]
cmp byte [ecx], al
jne 0x48e01c
inc ecx
shr eax, 8
dec ebx
jne 0x48e00f
mov ecx, esi
mov esi, ecx
jmp 0x48e029
tzcnt eax, ebx
shr eax, 3
add esi, eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x34]
sub edi, eax
add edi, esi
mov eax, ecx
mov ecx, dword [esp]
mov dword [esp + 0x90], ecx
lea esi, [eax + 4]
mov ebx, ebp
nop word cs:[eax + eax]
mov ecx, ebx
cmp ebx, esi
jb 0x48e061
lea ebx, [ecx - 4]
mov edx, dword [esp]
cmp dword [ecx - 4], edx
je 0x48e050
cmp ecx, eax
jbe 0x48e284
lea esi, [esp + 0x93]
mov ebx, dword [esp + 0x18]
nop word cs:[eax + eax]
movzx edx, byte [ecx - 1]
cmp dl, byte [esi]
jne 0x48e090
dec ecx
dec esi
cmp ecx, eax
ja 0x48e080
mov ecx, eax
mov eax, ebp
sub eax, ecx
mov esi, dword [esp + 0x2c]
cmp dword [esp + 0x20], esi
mov ecx, dword [esp + 0x10]
jae 0x48e0a8
mov dword [esp + 0x10], ecx
jmp 0x48e121
sub ebp, eax
cmp ebp, dword [esp + 0x7c]
jne 0x48e0a2
cmp esi, dword [esp + 0x60]
jbe 0x48e0a2
mov ecx, eax
neg ecx
shl ecx, 3
mov ebx, dword [esp]
rol ebx, cl
mov dword [esp + 0x90], ebx
mov esi, dword [esp + 0xd4]
cmp esi, 4
jl 0x48e249
lea ecx, [esi - 4]
mov edx, dword [esp + 0x34]
cmp dword [edx + esi - 4], ebx
mov esi, ecx
je 0x48e0d0
mov edx, dword [esp + 0x34]
add ecx, edx
add ecx, 4
mov ebx, dword [esp + 0x18]
lea esi, [esp + 0x93]
nop dword [eax]
movzx edx, byte [ecx - 1]
cmp dl, byte [esi]
jne 0x48e114
dec ecx
dec esi
cmp ecx, dword [esp + 0x34]
ja 0x48e100
mov ecx, dword [esp + 0x34]
add eax, dword [esp + 0xb4]
sub eax, ecx
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x20]
mov ecx, edx
sub ecx, eax
mov eax, dword [esp + 0x94]
cmp ecx, eax
cmovbe ecx, eax
mov eax, edx
mov edx, ecx
sub eax, ecx
add eax, edi
mov ecx, dword [esp + 0x3c]
cmp edi, ecx
ja 0x48e16c
cmp eax, ecx
jb 0x48e16c
mov eax, dword [esp + 0x20]
sub eax, ecx
add edi, eax
mov eax, edi
not eax
add eax, esi
cmp eax, 3
cmovb edi, esi
mov dword [esp + 0x20], 2
mov ecx, edi
jmp 0x48df75
mov ecx, edx
not ecx
add ecx, esi
mov dword [esp + 0x20], 2
cmp ecx, 3
jae 0x48e186
mov ecx, esi
jmp 0x48df75
mov ecx, dword [esp + 0x14]
cmp ecx, dword [esp + 0x28]
mov edi, dword [esp + 0xc]
je 0x48e19b
mov ecx, edx
jmp 0x48df79
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
cmovae eax, ecx
cmp edi, eax
jae 0x48e1d1
mov ecx, dword [esp + 0x98]
sub ecx, edx
cmp ecx, 0xffff
ja 0x48e2a0
mov ecx, dword [esp + 0x50]
add ecx, edx
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x10], ecx
mov edi, eax
movzx eax, dx
movzx eax, word [ebx + eax*2 + 0x20000]
sub edx, eax
mov ecx, edx
jae 0x48df79
jmp 0x48e2a0
mov edi, edx
cmp ecx, esi
jae 0x48e1fd
movzx eax, byte [ebx]
xor edx, edx
cmp al, byte [ecx]
sete dl
add ecx, edx
mov eax, dword [esp + 0x54]
sub ecx, dword [esp + 0x1c]
lea ebx, [ecx + 4]
cmp eax, dword [esp + 0x44]
mov dword [esp + 0xc], edi
jb 0x48dbdf
jmp 0x48dd45
mov edi, edx
cmp ebx, dword [esp + 0x44]
jae 0x48e22f
movzx eax, byte [eax]
xor ecx, ecx
cmp al, byte [ebx]
sete cl
add ebx, ecx
mov ecx, dword [esp + 0x30]
sub ebx, dword [esp + 0x1c]
sub ebx, esi
add ebx, 4
cmp ebx, edi
jg 0x48dd32
jmp 0x48ddc0
mov ecx, dword [esp + 0x34]
add ecx, esi
test esi, esi
mov ebx, dword [esp + 0x18]
jg 0x48e0f5
jmp 0x48e114
mov ecx, edx
mov edx, edi
cmp ecx, eax
jb 0x48db6b
jmp 0x48db93
mov edx, eax
mov ecx, dword [esp + 0x44]
cmp eax, ecx
jb 0x48df1b
jmp 0x48df3f
mov ebx, dword [esp + 0x18]
jmp 0x48e090
mov esi, ecx
mov ebx, dword [esp + 0x44]
cmp ecx, ebx
jb 0x48e00a
jmp 0x48e029
cmp edi, dword [esp + 0x84]
je 0x48f424
mov ebp, dword [esp + 0x28]
mov edx, dword [esp + 0xb8]
cmp edx, ebp
setb byte [esp]
mov eax, dword [esp + 0xa0]
add eax, ebp
mov ecx, dword [esp + 0x10]
cmp ecx, eax
setb al
and al, byte [esp]
cmovne ebp, edx
mov edx, ecx
sub edx, ebp
mov dword [esp + 0x28], ecx
mov esi, dword [esp + 0x40]
mov dword [esp + 0x80], esi
mov esi, dword [esp + 0x28]
cmp edx, 3
mov edx, dword [esp + 0x40]
jl 0x48d80d
mov dword [esp + 0x48], ebp
test al, al
mov eax, dword [esp + 0x8c]
cmovne eax, dword [esp + 0x68]
mov dword [esp + 0x8c], eax
mov ebp, dword [esp + 0x84]
cmovne ebp, dword [esp + 0xa0]
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x58], eax
mov eax, edx
cmp ebp, 0x12
mov edx, 0x12
cmovl edx, ebp
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x68], edx
add edx, ecx
mov dword [esp + 0xec], edx
lea edx, [ecx + ebp]
mov dword [esp + 0x84], ebp
add ecx, ebp
add ecx, 3
mov dword [esp + 0xf0], ecx
mov esi, dword [esp + 0x10]
mov dword [esp + 0xb0], edx
mov dword [esp + 0x40], eax
mov ebp, edi
mov eax, esi
mov edi, dword [esp + 0x48]
sub eax, edi
cmp eax, 0x11
jg 0x48e3b4
mov edx, ebp
lea ecx, [esi + ebp]
add ecx, 0xfffffffc
cmp dword [esp + 0xec], ecx
lea ecx, [eax + ebp - 4]
cmovbe ecx, dword [esp + 0x68]
mov eax, edi
sub eax, esi
add eax, ecx
test eax, eax
jle 0x48e3c3
add esi, eax
mov edi, dword [esp + 0x40]
add edi, eax
sub edx, eax
mov dword [esp + 0x80], edi
jmp 0x48e3ce
mov eax, dword [esp + 0x40]
mov dword [esp + 0x80], eax
mov edx, ebp
jmp 0x48e3ce
mov eax, dword [esp + 0x40]
mov dword [esp + 0x80], eax
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0xa0], edx
add edx, esi
cmp edx, dword [esp + 0xd0]
mov dword [esp + 0x4c], edx
mov edi, dword [esp + 0x84]
ja 0x48f633
mov dword [esp + 0x38], esi
lea eax, [edx - 3]
mov ecx, dword [ebx + 0x40004]
mov esi, dword [ebx + 0x4000c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x54], ecx
sub eax, ecx
lea edi, [eax + esi]
mov ebp, dword [ebx + 0x40010]
lea ecx, [ebp + 0x10000]
cmp ecx, edi
lea eax, [eax + esi - 0xffff]
mov dword [esp + 0x98], ebp
cmova eax, ebp
mov dword [esp + 0x94], eax
mov dword [esp + 0x2c], esi
neg esi
mov dword [esp + 4], esi
mov eax, dword [edx - 3]
mov dword [esp], eax
mov ecx, dword [ebx + 0x40014]
mov dword [esp + 0x50], edi
cmp ecx, edi
jae 0x48e4aa
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 4]
add edx, eax
jmp 0x48e48c
movzx ebx, cx
mov ebp, dword [esp + 0x18]
mov word [ebp + ebx*2 + 0x20000], di
mov ebx, ebp
mov dword [ebp + esi*4], ecx
inc ecx
cmp ecx, dword [esp + 0x50]
jae 0x48e4aa
imul esi, dword [edx + ecx], 0x9e3779b1
shr esi, 0x11
mov edi, ecx
sub edi, dword [ebx + esi*4]
cmp edi, 0xffff
jb 0x48e470
mov edi, 0xffff
jmp 0x48e470
mov eax, dword [ebx + 0x40008]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x50]
mov dword [ebx + 0x40014], ecx
mov eax, dword [esp]
movzx ecx, ax
mov edx, eax
shr edx, 0x10
xor edx, ecx
movzx ecx, al
shr eax, 0x18
xor eax, ecx
mov edi, dword [esp + 0x4c]
imul ecx, dword [edi - 3], 0x9e3779b1
shr ecx, 0x11
or eax, edx
mov ecx, dword [ebx + ecx*4]
sete byte [esp + 0x7c]
cmp ecx, dword [esp + 0x94]
jb 0x48f63c
mov edx, dword [esp + 0x98]
mov eax, edx
neg eax
mov esi, dword [esp + 0x2c]
sub esi, edx
mov dword [esp + 0xb8], esi
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x38]
sub ecx, dword [esp + 0x14]
mov dword [esp + 0x3c], ecx
mov ebx, dword [esp + 0x54]
mov esi, dword [esp + 4]
lea ecx, [ebx + esi]
mov dword [esp + 0x9c], ecx
mov ebp, dword [esp + 0x20]
add eax, ebp
mov dword [esp + 0xa8], eax
lea eax, [ebx + esi]
dec eax
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x38]
add ecx, eax
mov esi, dword [esp + 0x2c]
lea esi, [esi + ecx - 3]
mov dword [esp + 0xd8], esi
not ecx
mov dword [esp + 0x74], ecx
not edx
add edx, ebp
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x40], edx
mov ecx, ebp
mov ebp, dword [esp + 0xc4]
mov edx, dword [esp + 0xb8]
add ecx, edx
mov dword [esp + 0xb4], ecx
lea ecx, [edi + 1]
mov dword [esp + 0x60], ecx
lea ecx, [edi + 5]
mov dword [esp + 0x88], ecx
mov esi, dword [esp + 0x2c]
lea ecx, [esi - 4]
mov dword [esp + 0x1c], ecx
lea ecx, [ebx + 4]
mov dword [esp + 0xd4], ecx
mov ecx, dword [esp + 0x38]
lea ecx, [eax + ecx - 4]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x34], 0
mov edi, eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x64], eax
mov dword [esp + 0x28], 0
nop dword [eax + eax]
sub esi, ecx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x30], ecx
mov dword [esp + 0x6c], esi
jbe 0x48e670
cmp ecx, dword [esp + 0x1c]
ja 0x48e990
mov ebp, ecx
sub ebp, dword [esp + 0x98]
mov eax, dword [esp + 0x20]
lea ecx, [eax + ebp]
mov eax, dword [esp]
cmp dword [ecx], eax
jne 0x48e710
mov eax, dword [esp + 0x14]
lea edx, [eax + esi]
mov eax, dword [esp + 0x44]
cmp edx, eax
mov dword [esp + 0x24], edx
cmova edx, eax
lea ebx, [ecx + 4]
mov dword [esp + 0x5c], edx
lea eax, [edx - 3]
mov edx, dword [esp + 0x60]
cmp eax, edx
jbe 0x48ee58
mov esi, dword [edx]
xor esi, dword [ebx]
je 0x48e719
tzcnt ecx, esi
shr ecx, 3
jmp 0x48e788
mov eax, dword [esp + 0x9c]
lea ebp, [eax + ecx]
mov edx, dword [esp + 0x38]
movzx eax, word [edx + edi - 1]
mov ecx, dword [esp + 0x3c]
add ecx, ebp
cmp ax, word [edi + ecx - 1]
jne 0x48e710
mov eax, dword [esp]
cmp dword [ebp], eax
jne 0x48e710
cmp dword [esp + 0x14], edx
je 0x48e7e0
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0x54]
sub eax, ebp
mov ecx, dword [esp + 0x3c]
cmp ecx, eax
cmovg eax, ecx
mov esi, eax
sar esi, 0x1f
and esi, eax
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0x30]
add ecx, edx
xor ebx, ebx
nop
cmp ebx, eax
jle 0x48e6e9
lea edi, [ebx - 1]
mov edx, dword [esp + 4]
movzx edx, byte [edx + ebx]
cmp dl, byte [ecx + ebx]
mov ebx, edi
je 0x48e6d0
inc edi
mov esi, edi
mov edi, dword [esp + 0xc]
lea eax, [ebp + 4]
mov ebx, dword [esp + 0x60]
cmp dword [esp + 8], ebx
ja 0x48e7ef
jmp 0x48e80b
mov ecx, dword [esp + 0x30]
jmp 0x48e990
add ecx, 8
mov ebx, ecx
mov ecx, dword [esp + 0x88]
mov edx, edi
cmp ecx, eax
jae 0x48e753
mov esi, dword [esp + 0x74]
lea edi, [esi + ecx]
nop word cs:[eax + eax]
mov esi, dword [ecx]
xor esi, dword [ebx]
jne 0x48e77d
add ecx, 4
add ebx, 4
add edi, 4
cmp ecx, eax
jb 0x48e740
mov eax, dword [esp + 0x5c]
dec eax
cmp ecx, eax
jae 0x48eddb
movzx eax, word [ebx]
cmp ax, word [ecx]
mov edi, edx
mov esi, dword [esp + 0x38]
jne 0x48ede1
add ecx, 2
add ebx, 2
jmp 0x48ede1
tzcnt ecx, esi
shr ecx, 3
add ecx, edi
mov edi, edx
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
lea ebx, [ecx + 4]
cmp eax, dword [esp + 0x44]
mov dword [esp + 0xc], edi
jae 0x48e910
mov eax, dword [esp + 0x14]
add eax, ecx
add eax, 4
mov ecx, dword [esp + 0x5c]
cmp eax, ecx
jne 0x48e910
mov eax, ecx
mov edx, dword [esp + 0x54]
mov edi, edx
cmp dword [esp + 8], ecx
jbe 0x48e869
mov ecx, eax
mov eax, dword [eax]
xor eax, dword [edx]
je 0x48e85f
tzcnt ecx, eax
shr ecx, 3
jmp 0x48e90e
xor esi, esi
lea eax, [ebp + 4]
mov ebx, dword [esp + 0x60]
cmp dword [esp + 8], ebx
jbe 0x48e80b
mov ecx, dword [ebx]
xor ecx, dword [eax]
je 0x48e801
tzcnt ebx, ecx
shr ebx, 3
jmp 0x48e8e5
lea eax, [ebp + 8]
mov ebx, dword [esp + 0x88]
mov edx, edi
cmp ebx, dword [esp + 8]
jae 0x48e839
mov ecx, dword [esp + 0x74]
add ecx, ebx
nop dword [eax]
mov edi, dword [ebx]
xor edi, dword [eax]
jne 0x48e8da
add ebx, 4
add eax, 4
add ecx, 4
cmp ebx, dword [esp + 8]
jb 0x48e820
cmp ebx, dword [esp + 0xc0]
jae 0x48ee13
movzx ecx, word [eax]
cmp cx, word [ebx]
mov edi, edx
jne 0x48ee15
add ebx, 2
add eax, 2
jmp 0x48ee15
add ecx, 4
mov edi, dword [esp + 0xd4]
cmp ecx, dword [esp + 8]
jae 0x48e8a5
mov edx, dword [esp + 0xd8]
sub edx, dword [esp + 0x30]
mov eax, dword [esp + 0xe0]
cmp edx, eax
cmovae edx, eax
mov eax, ecx
sub eax, edx
nop word [eax + eax]
mov esi, dword [ecx]
xor esi, dword [edi]
jne 0x48e901
add ecx, 4
add edi, 4
add eax, 4
cmp ecx, dword [esp + 8]
jb 0x48e890
cmp ecx, dword [esp + 0xc0]
jae 0x48e8bc
movzx eax, word [edi]
cmp ax, word [ecx]
jne 0x48e8bc
add ecx, 2
add edi, 2
mov esi, dword [esp + 0x38]
cmp ecx, dword [esp + 0x44]
jae 0x48e8d2
movzx eax, byte [edi]
xor edx, edx
cmp al, byte [ecx]
sete dl
add ecx, edx
mov eax, dword [esp + 0x5c]
sub ecx, eax
jmp 0x48e90e
tzcnt ebx, edi
shr ebx, 3
add ebx, ecx
mov edi, edx
mov ecx, dword [esp + 0x30]
sub ebx, esi
add ebx, 4
cmp ebx, edi
jle 0x48e990
add ebp, esi
mov dword [esp + 0x40], ebp
jmp 0x48e984
tzcnt ecx, esi
shr ecx, 3
add ecx, eax
mov esi, dword [esp + 0x38]
add ebx, ecx
cmp dword [esp + 0x14], esi
mov ecx, dword [esp + 0x30]
je 0x48e969
neg ebp
mov eax, dword [esp + 0x3c]
cmp eax, ebp
cmovg ebp, eax
mov esi, ebp
sar esi, 0x1f
and esi, ebp
mov eax, dword [esp + 0x78]
add eax, ecx
xor ecx, ecx
nop word cs:[eax + eax]
cmp ecx, ebp
jle 0x48e959
lea edi, [ecx - 1]
mov edx, dword [esp + 4]
movzx edx, byte [edx + ecx]
cmp dl, byte [eax + ecx]
mov ecx, edi
je 0x48e940
inc edi
mov esi, edi
mov ecx, dword [esp + 0x30]
sub ebx, esi
mov edi, dword [esp + 0xc]
cmp ebx, edi
jg 0x48e975
jmp 0x48e990
xor esi, esi
sub ebx, esi
mov edi, dword [esp + 0xc]
cmp ebx, edi
jle 0x48e990
mov eax, dword [esp + 0x9c]
add eax, ecx
add eax, esi
mov dword [esp + 0x40], eax
add esi, dword [esp + 0x14]
mov dword [esp + 0x10], esi
mov edi, ebx
nop
mov dword [esp + 0xc], edi
movzx eax, cx
mov ebx, dword [esp + 0x18]
movzx edi, word [ebx + eax*2 + 0x20000]
cmp dword [esp + 0xbc], 0x81
jl 0x48eaa0
cmp di, 1
mov esi, dword [esp + 0x2c]
jne 0x48eab0
cmp dword [esp + 0x34], 0
je 0x48eab9
mov ebp, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x28], eax
cmp dword [esp + 0x34], 2
jne 0x48eb50
lea edx, [ecx - 1]
cmp edx, dword [esp + 0x94]
jb 0x48eb50
mov dword [esp + 0x34], 2
cmp dword [esp + 0x6c], 3
jb 0x48eb50
cmp edx, esi
mov eax, dword [esp + 0x9c]
cmovb eax, dword [esp + 0xa8]
mov ecx, dword [esp]
cmp dword [eax + edx], ecx
jne 0x48eb45
lea ebp, [eax + edx]
mov dword [esp + 0x34], edx
cmp edx, esi
mov edx, dword [esp + 0x44]
cmovb edx, dword [esp + 0xb4]
lea edi, [ebp + 4]
lea ebx, [edx - 3]
mov ecx, edi
cmp ebx, edi
jbe 0x48ea75
mov ecx, dword [esp + 0x30]
lea esi, [ecx + eax]
add esi, 3
mov ecx, edi
nop word cs:[eax + eax]
mov eax, dword [ecx]
xor eax, dword [esp]
jne 0x48eb83
add ecx, 4
add esi, 4
cmp ecx, ebx
jb 0x48ea60
cmp ecx, edx
mov eax, dword [esp + 0x54]
jae 0x48eb90
mov esi, edx
sub esi, ecx
mov ebx, dword [esp]
cmp byte [ecx], bl
jne 0x48eb90
inc ecx
shr ebx, 8
dec esi
jne 0x48ea88
mov ecx, edx
jmp 0x48eb90
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x2c]
jmp 0x48eb50
mov ebp, dword [esp + 0x10]
jmp 0x48eb50
mov dword [esp + 0x34], 1
cmp byte [esp + 0x7c], 0
mov ebp, dword [esp + 0x10]
je 0x48eb50
mov eax, dword [esp + 0x60]
cmp dword [esp + 8], eax
jbe 0x48ee69
mov edx, eax
mov ecx, dword [eax]
xor ecx, dword [esp]
jne 0x48eb16
add eax, 4
add edx, 4
cmp eax, dword [esp + 8]
jb 0x48eae0
mov ecx, dword [esp + 0x44]
cmp eax, ecx
jae 0x48eb1f
sub ecx, edx
lea edx, [eax + ecx]
mov ebx, dword [esp]
cmp byte [eax], bl
jne 0x48eb10
inc eax
shr ebx, 8
dec ecx
jne 0x48eb03
mov eax, edx
mov ebx, dword [esp + 0x18]
jmp 0x48eb21
tzcnt eax, ecx
shr eax, 3
add edx, eax
mov eax, edx
mov ecx, dword [esp + 0x30]
sub eax, dword [esp + 0x60]
add eax, 4
mov dword [esp + 0x34], 2
mov dword [esp + 0x28], eax
cmp dword [esp + 0x34], 2
je 0x48e9e4
jmp 0x48eb50
mov ecx, dword [esp + 0x30]
nop dword [eax]
movzx eax, di
sub ecx, eax
mov edi, dword [esp + 0xc]
cmp ecx, dword [esp + 0x94]
jb 0x48ee98
mov edx, ecx
mov ecx, dword [esp + 0x64]
lea eax, [ecx - 1]
cmp ecx, 1
mov ecx, edx
mov dword [esp + 0x64], eax
jg 0x48e5f0
jmp 0x48ee98
tzcnt ecx, eax
shr ecx, 3
add ecx, esi
mov eax, dword [esp + 0x54]
sub ecx, edi
lea edi, [ecx + 4]
mov edx, dword [esp + 0x34]
cmp edx, dword [esp + 0x2c]
mov edx, dword [esp + 0x20]
jae 0x48ec17
lea eax, [edi + ebp]
cmp eax, dword [esp + 0xb4]
je 0x48ebb3
mov eax, edx
jmp 0x48ec17
shl ecx, 3
mov eax, dword [esp]
rol eax, cl
mov ecx, dword [esp + 0x54]
cmp dword [esp + 8], ecx
jbe 0x48ee85
mov esi, ecx
nop dword [eax + eax]
mov ebx, dword [ecx]
xor ebx, eax
jne 0x48ec00
add ecx, 4
add esi, 4
cmp ecx, dword [esp + 8]
jb 0x48ebd0
mov ebx, dword [esp + 0x44]
cmp ecx, ebx
jae 0x48ec09
sub ebx, esi
lea esi, [ecx + ebx]
cmp byte [ecx], al
jne 0x48ebfc
inc ecx
shr eax, 8
dec ebx
jne 0x48ebef
mov ecx, esi
mov esi, ecx
jmp 0x48ec09
tzcnt eax, ebx
shr eax, 3
add esi, eax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x20]
sub edi, eax
add edi, esi
mov eax, ecx
mov ecx, dword [esp]
mov dword [esp + 0x90], ecx
lea esi, [eax + 4]
mov ebx, ebp
nop word cs:[eax + eax]
mov ecx, ebx
cmp ebx, esi
jb 0x48ec41
lea ebx, [ecx - 4]
mov edx, dword [esp]
cmp dword [ecx - 4], edx
je 0x48ec30
cmp ecx, eax
jbe 0x48ee7c
lea esi, [esp + 0x93]
mov ebx, dword [esp + 0x18]
nop word cs:[eax + eax]
movzx edx, byte [ecx - 1]
cmp dl, byte [esi]
jne 0x48ec70
dec ecx
dec esi
cmp ecx, eax
ja 0x48ec60
mov ecx, eax
mov eax, ebp
sub eax, ecx
mov esi, dword [esp + 0x2c]
cmp dword [esp + 0x34], esi
mov ecx, ebp
mov ebp, dword [esp + 0x10]
jb 0x48ed15
sub ecx, eax
cmp ecx, dword [esp + 0x54]
jne 0x48ed15
cmp esi, dword [esp + 0x98]
jbe 0x48ed15
mov ecx, eax
neg ecx
shl ecx, 3
mov ebx, dword [esp]
rol ebx, cl
mov dword [esp + 0x90], ebx
mov esi, dword [esp + 0xb8]
nop word [eax + eax]
cmp esi, 4
jl 0x48ee41
lea ecx, [esi - 4]
mov edx, dword [esp + 0x20]
cmp dword [edx + esi - 4], ebx
mov esi, ecx
je 0x48ecc0
mov edx, dword [esp + 0x20]
add ecx, edx
add ecx, 4
mov ebx, dword [esp + 0x18]
lea esi, [esp + 0x93]
nop dword [eax]
movzx edx, byte [ecx - 1]
cmp dl, byte [esi]
jne 0x48ed04
dec ecx
dec esi
cmp ecx, dword [esp + 0x20]
ja 0x48ecf0
mov ecx, dword [esp + 0x20]
add eax, dword [esp + 0xb4]
sub eax, ecx
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
mov ecx, edx
sub ecx, eax
mov eax, dword [esp + 0x94]
cmp ecx, eax
cmovbe ecx, eax
mov eax, edx
mov edx, ecx
sub eax, ecx
add eax, edi
mov ecx, dword [esp + 0x28]
cmp edi, ecx
ja 0x48ed60
cmp eax, ecx
jb 0x48ed60
mov eax, dword [esp + 0x34]
sub eax, ecx
add edi, eax
mov eax, edi
not eax
add eax, esi
cmp eax, 3
cmovb edi, esi
mov dword [esp + 0x34], 2
mov ecx, edi
jmp 0x48eb55
mov ecx, edx
not ecx
add ecx, esi
mov dword [esp + 0x34], 2
cmp ecx, 3
jae 0x48ed7a
mov ecx, esi
jmp 0x48eb55
mov ecx, dword [esp + 0x14]
cmp ecx, dword [esp + 0x38]
mov edi, dword [esp + 0xc]
je 0x48ed8f
mov ecx, edx
jmp 0x48eb59
mov ecx, dword [esp + 0x28]
cmp eax, ecx
cmovae eax, ecx
cmp edi, eax
jae 0x48edc1
mov ecx, dword [esp + 0x50]
sub ecx, edx
cmp ecx, 0xffff
ja 0x48ee98
mov ecx, dword [esp + 0x9c]
add ecx, edx
mov dword [esp + 0x40], ecx
mov ebp, dword [esp + 0x38]
mov edi, eax
movzx eax, dx
movzx eax, word [ebx + eax*2 + 0x20000]
sub edx, eax
mov ecx, edx
jae 0x48eb59
jmp 0x48ee98
mov edi, edx
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x5c]
cmp ecx, eax
jae 0x48edf5
movzx eax, byte [ebx]
xor edx, edx
cmp al, byte [ecx]
sete dl
add ecx, edx
mov eax, dword [esp + 0x24]
sub ecx, dword [esp + 0x60]
lea ebx, [ecx + 4]
cmp eax, dword [esp + 0x44]
mov dword [esp + 0xc], edi
jb 0x48e7a1
jmp 0x48e910
mov edi, edx
cmp ebx, dword [esp + 0x44]
jae 0x48ee27
movzx eax, byte [eax]
xor ecx, ecx
cmp al, byte [ebx]
sete cl
add ebx, ecx
mov ecx, dword [esp + 0x30]
sub ebx, dword [esp + 0x60]
sub ebx, esi
add ebx, 4
cmp ebx, edi
jg 0x48e8f6
jmp 0x48e990
mov ecx, dword [esp + 0x20]
add ecx, esi
test esi, esi
mov ebx, dword [esp + 0x18]
jg 0x48ece5
jmp 0x48ed04
mov ecx, edx
mov edx, edi
cmp ecx, eax
jb 0x48e72b
jmp 0x48e753
mov edx, eax
mov ecx, dword [esp + 0x44]
cmp eax, ecx
jb 0x48eafb
jmp 0x48eb1f
mov ebx, dword [esp + 0x18]
jmp 0x48ec70
mov esi, ecx
mov ebx, dword [esp + 0x44]
cmp ecx, ebx
jb 0x48ebea
jmp 0x48ec09
cmp edi, dword [esp + 0xa0]
mov edx, dword [esp + 0xb0]
je 0x48f657
mov esi, ebp
cmp ebp, dword [esp + 0xf0]
mov eax, dword [esp + 0x40]
jae 0x48eed6
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], eax
cmp esi, edx
jb 0x48e36c
jmp 0x48f193
mov ecx, dword [esp + 0x38]
cmp ecx, edx
jae 0x48ef3d
mov eax, ecx
mov edx, dword [esp + 0x48]
sub eax, edx
cmp eax, 0x11
jg 0x48ef44
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x4c]
add edx, 0xfffffffc
cmp dword [esp + 0xec], edx
mov edx, dword [esp + 0xa0]
lea eax, [edx + eax - 4]
mov esi, dword [esp + 0x68]
cmova esi, eax
mov eax, dword [esp + 0x48]
sub eax, ecx
mov dword [esp + 0x68], esi
add eax, esi
test eax, eax
jle 0x48ef35
add ecx, eax
mov dword [esp + 0x38], ecx
add dword [esp + 0x80], eax
sub edx, eax
mov dword [esp + 0xa0], edx
mov eax, dword [esp + 0x58]
mov esi, ebp
jmp 0x48ef4c
mov eax, dword [esp + 0x84]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x10], esi
mov ebp, dword [esp + 0x48]
sub ebp, eax
mov eax, ebp
mov edx, 0x80808081
mul edx
cmp dword [esp + 0x128], 0
je 0x48ef85
shr edx, 7
mov eax, dword [esp + 0x70]
add eax, edx
inc eax
add eax, ebp
add eax, 8
cmp eax, dword [esp + 0xac]
ja 0x492db9
mov ecx, dword [esp + 0x70]
lea esi, [ecx + 1]
cmp ebp, 0xf
mov edx, ebp
mov dword [esp], ebp
mov dword [esp + 0xc], edi
jb 0x48eff6
lea eax, [edx - 0xf]
mov byte [ecx], 0xf0
cmp eax, 0xff
mov ebx, dword [esp + 0x48]
jb 0x48efea
lea eax, [edx - 0x10e]
mov ecx, 0x80808081
mov edi, edx
mul ecx
mov ebp, edx
shr ebp, 7
lea eax, [ebp + 1]
push eax
push 0xff
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, ebp
shl eax, 8
mov ecx, dword [esp + 0x70]
lea esi, [ecx + ebp]
add esi, 2
sub ebp, eax
lea eax, [edi + ebp]
add eax, 0xfffffef2
mov edx, dword [esp + 0x58]
mov byte [esi], al
inc esi
mov edi, dword [esp]
jmp 0x48f007
mov eax, edx
shl al, 4
mov byte [ecx], al
mov ebx, dword [esp + 0x48]
mov edi, edx
mov edx, dword [esp + 0x58]
lea eax, [esi + ebx]
sub eax, edx
lea ecx, [esi + 8]
cmp eax, ecx
cmovbe eax, ecx
add edi, esi
mov ecx, edx
mov edx, esi
not edx
add edx, eax
mov eax, ecx
mov ecx, esi
cmp edx, 0x18
jb 0x48f06e
mov ebx, esi
mov eax, dword [esp + 0x58]
sub ebx, eax
mov ecx, esi
cmp ebx, 0x20
jb 0x48f06e
shr edx, 3
inc edx
mov dword [esp + 4], edx
mov ebx, edx
and ebx, 0xfffffffc
mov edx, dword [esp + 0x58]
lea eax, [edx + ebx*8]
lea ecx, [esi + ebx*8]
xor ebp, ebp
movups xmm0, xmmword [edx + ebp*8]
movups xmm1, xmmword [edx + ebp*8 + 0x10]
movups xmmword [esi + ebp*8], xmm0
movups xmmword [esi + ebp*8 + 0x10], xmm1
add ebp, 4
cmp ebx, ebp
jne 0x48f04f
cmp dword [esp + 4], ebx
je 0x48f080
movsd xmm0, qword [eax]
movsd qword [ecx], xmm0
add ecx, 8
add eax, 8
cmp ecx, edi
jb 0x48f06e
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x68]
lea ecx, [eax - 4]
mov eax, ecx
mov edx, 0x80808081
mul edx
sub ebx, dword [esp + 0x8c]
mov word [edi], bx
cmp dword [esp + 0x128], 0
je 0x48f0be
shr edx, 7
lea eax, [edi + edx]
add eax, 8
cmp eax, dword [esp + 0xac]
ja 0x492ddc
add edi, 2
mov edx, dword [esp + 0x70]
movzx eax, byte [edx]
cmp ecx, 0xf
mov ebx, dword [esp + 0x18]
jb 0x48f143
add al, 0xf
mov byte [edx], al
mov ecx, dword [esp + 0x68]
lea eax, [ecx - 0x13]
cmp eax, 0x1fe
jb 0x48f128
lea eax, [ecx - 0x211]
mov ecx, 0x80808081
mul ecx
mov ebp, edx
shr ebp, 8
lea eax, [ebp*2 + 2]
push eax
push 0xff
push edi
call sub.msvcrt.dll_memset
mov ecx, dword [esp + 0x74]
add esp, 0xc
mov eax, dword [esp]
lea eax, [eax + ebp*2]
lea edi, [esi + eax]
add edi, 4
imul eax, ebp, 0xfffffe02
add eax, ecx
add eax, 0xfffffdef
cmp eax, 0xff
jb 0x48f138
add eax, 0xffffff01
mov byte [edi], 0xff
inc edi
mov byte [edi], al
inc edi
mov eax, dword [esp + 0x48]
add eax, ecx
jmp 0x48f14f
add al, cl
mov byte [edx], al
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0x68]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x48], eax
mov dword [esp + 0x70], edi
mov eax, dword [esp + 0x80]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc8], eax
mov ebp, dword [esp + 0xa0]
mov edi, dword [esp + 0xc]
jmp 0x48e32f
mov ebp, dword [esp + 0x38]
cmp ebp, edx
jae 0x48f1db
mov ecx, edx
mov eax, edx
sub eax, ebp
mov edx, dword [esp + 0xa0]
sub edx, eax
mov ebp, edx
mov dword [esp + 0xa0], edx
cmp edx, 3
jg 0x48f1d0
mov dword [esp + 0x38], esi
mov eax, dword [esp + 0x40]
mov dword [esp + 0x80], eax
mov dword [esp + 0xa0], edi
jmp 0x48f1db
add dword [esp + 0x80], eax
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x58]
mov dword [esp + 0x10], esi
mov ebp, dword [esp + 0x48]
sub ebp, eax
mov eax, ebp
mov edx, 0x80808081
mul edx
cmp dword [esp + 0x128], 0
je 0x48f218
shr edx, 7
mov eax, dword [esp + 0x70]
add eax, edx
inc eax
add eax, ebp
add eax, 8
cmp eax, dword [esp + 0xac]
ja 0x492e0a
mov ecx, dword [esp + 0x70]
lea esi, [ecx + 1]
cmp ebp, 0xf
mov edx, ebp
mov dword [esp], ebp
mov dword [esp + 0xc], edi
jb 0x48f289
lea eax, [edx - 0xf]
mov byte [ecx], 0xf0
cmp eax, 0xff
mov ebx, dword [esp + 0x48]
jb 0x48f27d
lea eax, [edx - 0x10e]
mov ecx, 0x80808081
mov edi, edx
mul ecx
mov ebp, edx
shr ebp, 7
lea eax, [ebp + 1]
push eax
push 0xff
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, ebp
shl eax, 8
mov ecx, dword [esp + 0x70]
lea esi, [ecx + ebp]
add esi, 2
sub ebp, eax
lea eax, [edi + ebp]
add eax, 0xfffffef2
mov edx, dword [esp + 0x58]
mov byte [esi], al
inc esi
mov eax, dword [esp]
jmp 0x48f29a
mov eax, edx
shl al, 4
mov byte [ecx], al
mov ebx, dword [esp + 0x48]
mov eax, edx
mov edx, dword [esp + 0x58]
lea edi, [esi + eax]
mov eax, esi
not eax
lea ecx, [esi + ebx]
sub ecx, edx
mov ebx, edx
lea edx, [esi + 8]
cmp ecx, edx
cmovbe ecx, edx
add ecx, eax
mov eax, ebx
mov edx, esi
cmp ecx, 0x18
jb 0x48f302
mov ebx, esi
mov eax, dword [esp + 0x58]
sub ebx, eax
mov edx, esi
cmp ebx, 0x20
jb 0x48f302
shr ecx, 3
inc ecx
mov dword [esp + 4], ecx
mov ebx, ecx
and ebx, 0xfffffffc
mov ecx, dword [esp + 0x58]
lea eax, [ecx + ebx*8]
lea edx, [esi + ebx*8]
xor ebp, ebp
movups xmm0, xmmword [ecx + ebp*8]
movups xmm1, xmmword [ecx + ebp*8 + 0x10]
movups xmmword [esi + ebp*8], xmm0
movups xmmword [esi + ebp*8 + 0x10], xmm1
add ebp, 4
cmp ebx, ebp
jne 0x48f2e3
cmp dword [esp + 4], ebx
je 0x48f314
movsd xmm0, qword [eax]
movsd qword [edx], xmm0
add edx, 8
add eax, 8
cmp edx, edi
jb 0x48f302
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x84]
lea ecx, [eax - 4]
mov eax, ecx
mov edx, 0x80808081
mul edx
sub ebx, dword [esp + 0x8c]
mov word [edi], bx
cmp dword [esp + 0x128], 0
je 0x48f355
shr edx, 7
lea eax, [edi + edx]
add eax, 8
cmp eax, dword [esp + 0xac]
ja 0x493041
add edi, 2
mov edx, dword [esp + 0x70]
movzx eax, byte [edx]
cmp ecx, 0xf
mov ebx, dword [esp + 0x18]
jb 0x48f3e1
add al, 0xf
mov byte [edx], al
mov ebp, dword [esp + 0x84]
lea eax, [ebp - 0x13]
cmp eax, 0x1fe
jb 0x48f3c4
lea eax, [ebp - 0x211]
mov ecx, 0x80808081
mul ecx
shr edx, 8
mov dword [esp + 4], edx
lea eax, [edx*2 + 2]
push eax
push 0xff
push edi
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [esp]
mov ecx, dword [esp + 4]
lea eax, [eax + ecx*2]
lea edi, [esi + eax]
add edi, 4
imul eax, ecx, 0xfffffe02
add eax, ebp
add eax, 0xfffffdef
cmp eax, 0xff
mov ecx, dword [esp + 0x10]
jb 0x48f3d8
add eax, 0xffffff01
mov byte [edi], 0xff
inc edi
mov byte [edi], al
inc edi
mov dword [esp + 0x70], edi
jmp 0x48f3ed
add al, cl
mov byte [edx], al
mov dword [esp + 0x70], edi
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xc4], ecx
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0xb8], eax
mov edi, dword [esp + 0xc]
jmp 0x48d803
mov dword [esp + 0x38], ecx
jmp 0x48f43e
mov eax, dword [esp + 0x40]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], eax
mov edi, dword [esp + 0x84]
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0xb0]
mov ebp, eax
mov ecx, 0x80808081
mul ecx
cmp dword [esp + 0x128], 0
mov esi, dword [esp + 0x70]
je 0x48f47b
shr edx, 7
lea eax, [esi + edx]
inc eax
mov ecx, ebp
add eax, ebp
add eax, 8
cmp eax, dword [esp + 0xac]
ja 0x492cde
lea ecx, [esi + 1]
mov edx, ebp
cmp ebp, 0xf
jb 0x48f4d4
lea eax, [edx - 0xf]
mov byte [esi], 0xf0
cmp eax, 0xff
jb 0x48f4cf
lea eax, [edx - 0x10e]
mov ebp, edx
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, [esi + edi]
add ecx, 2
sub edi, eax
mov edx, ebp
lea eax, [edi + ebp]
add eax, 0xfffffef2
mov byte [ecx], al
inc ecx
jmp 0x48f4db
mov eax, edx
shl al, 4
mov byte [esi], al
add edx, ecx
mov dword [esp], edx
mov eax, dword [esp + 0x28]
add eax, ecx
mov esi, dword [esp + 0xb0]
sub eax, esi
lea edx, [ecx + 8]
cmp eax, edx
cmovbe eax, edx
mov edi, ecx
not edi
add edi, eax
mov eax, ecx
sub eax, esi
cmp edi, 0x18
mov dword [esp + 4], eax
jb 0x48f546
cmp eax, 0x20
jb 0x48f546
shr edi, 3
inc edi
mov ebx, edi
and ebx, 0xfffffffc
lea eax, [esi + ebx*8]
lea edx, [ecx + ebx*8]
xor ebp, ebp
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 ebx, ebp
jne 0x48f520
cmp edi, ebx
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp]
jne 0x48f550
jmp 0x48f562
mov eax, esi
mov edx, ecx
mov ecx, dword [esp]
nop dword [eax]
movsd xmm0, qword [eax]
movsd qword [edx], xmm0
add edx, 8
add eax, 8
cmp edx, ecx
jb 0x48f550
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x84]
mov esi, ecx
lea ecx, [eax - 4]
mov eax, ecx
mov edx, 0x80808081
mul edx
sub edi, dword [esp + 0x8c]
mov word [esi], di
cmp dword [esp + 0x128], 0
je 0x48f5a5
shr edx, 7
lea eax, [esi + edx]
add eax, 8
cmp eax, dword [esp + 0xac]
ja 0x492cf8
add esi, 2
mov edx, dword [esp + 0x70]
movzx eax, byte [edx]
cmp ecx, 0xf
jb 0x48faa4
add al, 0xf
mov byte [edx], al
mov ebp, dword [esp + 0x84]
lea eax, [ebp - 0x13]
cmp eax, 0x1fe
jb 0x48f614
lea eax, [ebp - 0x211]
mov ecx, 0x80808081
mul ecx
mov edi, edx
shr edi, 8
lea eax, [edi*2 + 2]
push eax
push 0xff
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x28]
lea eax, [eax + edi*2]
imul ecx, edi, 0xfffffe02
mov edx, dword [esp + 4]
lea esi, [edx + eax]
add esi, 4
lea eax, [ecx + ebp]
add eax, 0xfffffdef
cmp eax, 0xff
jb 0x48f628
add eax, 0xffffff01
mov ebp, esi
mov byte [esi], 0xff
inc ebp
jmp 0x48f62a
mov ebp, esi
mov byte [ebp], al
inc ebp
jmp 0x48faaa
mov edx, dword [esp + 0xb0]
jmp 0x48f67b
mov ebp, dword [esp + 0xa4]
mov edx, dword [esp + 0xb0]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x84]
jmp 0x48f67b
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xc4], ebp
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x84]
mov ebp, dword [esp + 0xa4]
mov ecx, esi
mov eax, dword [esp + 0x48]
sub ecx, eax
mov dword [esp + 0x38], esi
cmp esi, edx
cmovae ecx, edi
mov dword [esp + 0x68], ecx
mov ecx, eax
sub ecx, dword [esp + 0x58]
mov eax, ecx
mov edx, 0x80808081
mul edx
cmp dword [esp + 0x128], 0
mov esi, dword [esp + 0x70]
je 0x48f6c6
shr edx, 7
lea eax, [esi + edx]
inc eax
add eax, ecx
add eax, 8
cmp eax, dword [esp + 0xac]
ja 0x492d33
mov eax, ecx
lea ecx, [esi + 1]
cmp eax, 0xf
jb 0x48f723
mov ebp, eax
add eax, 0xfffffff1
mov byte [esi], 0xf0
cmp eax, 0xff
jb 0x48f732
lea eax, [ebp - 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, [esi + edi]
add ecx, 2
sub edi, eax
mov esi, ebp
lea eax, [edi + ebp]
add eax, 0xfffffef2
mov edi, dword [esp + 0x84]
jmp 0x48f734
mov edx, eax
shl al, 4
mov byte [esi], al
mov esi, edx
mov edx, dword [esp + 0x58]
jmp 0x48f73b
mov esi, ebp
mov edx, dword [esp + 0x58]
mov byte [ecx], al
inc ecx
add esi, ecx
mov dword [esp], esi
mov eax, dword [esp + 0x48]
add eax, ecx
sub eax, edx
mov ebp, edx
lea edx, [ecx + 8]
cmp eax, edx
cmovbe eax, edx
mov esi, ecx
not esi
add esi, eax
cmp esi, 0x18
jb 0x48f7ab
mov eax, ecx
sub eax, ebp
cmp eax, 0x20
jb 0x48f7ab
shr esi, 3
inc esi
mov edi, esi
and edi, 0xfffffffc
lea eax, [edi*8]
add eax, ebp
lea edx, [ecx + edi*8]
xor ebx, ebx
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 edi, ebx
jne 0x48f77d
cmp esi, edi
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x84]
mov ecx, dword [esp]
jne 0x48f7b2
jmp 0x48f7c4
mov eax, ebp
mov edx, ecx
mov ecx, dword [esp]
movsd xmm0, qword [eax]
movsd qword [edx], xmm0
add edx, 8
add eax, 8
cmp edx, ecx
jb 0x48f7b2
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x68]
mov ebp, ecx
lea ecx, [eax - 4]
mov eax, ecx
mov edx, 0x80808081
mul edx
sub esi, dword [esp + 0x8c]
mov word [ebp], si
cmp dword [esp + 0x128], 0
je 0x48f805
shr edx, 7
lea eax, [edx + ebp]
add eax, 8
cmp eax, dword [esp + 0xac]
ja 0x492d4a
lea esi, [ebp + 2]
mov edx, dword [esp + 0x70]
movzx eax, byte [edx]
cmp ecx, 0xf
jb 0x48f89f
add al, 0xf
mov byte [edx], al
mov ecx, dword [esp + 0x68]
lea eax, [ecx - 0x13]
cmp eax, 0x1fe
mov edx, dword [esp + 0x38]
jb 0x48f883
mov eax, dword [esp + 0x48]
add edi, eax
cmp edx, edi
cmovb edi, edx
sub edi, eax
lea eax, [edi - 0x211]
mov ecx, 0x80808081
mul ecx
mov ebp, edi
mov edi, edx
shr edi, 8
lea eax, [edi*2 + 2]
push eax
push 0xff
push esi
call sub.msvcrt.dll_memset
mov ecx, dword [esp + 0x74]
add esp, 0xc
imul eax, edi, 0xfffffe02
mov edx, dword [esp]
lea esi, [edx + edi*2]
add esi, 4
mov edx, dword [esp + 0x38]
add eax, ebp
add eax, 0xfffffdef
mov ebp, dword [esp + 0xa4]
cmp eax, 0xff
jb 0x48f89a
add eax, 0xffffff01
mov byte [esi], 0xff
inc esi
mov byte [esi], al
inc esi
jmp 0x48f8b2
add al, cl
mov byte [edx], al
mov ebp, dword [esp + 0xa4]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x48]
add eax, ecx
mov ecx, edx
mov dword [esp + 4], eax
sub ecx, eax
mov eax, ecx
mov edx, 0x80808081
mul edx
cmp dword [esp + 0x128], 0
je 0x48f8ec
shr edx, 7
lea eax, [esi + edx]
inc eax
add eax, ecx
add eax, 8
cmp eax, dword [esp + 0xac]
ja 0x492d5e
lea ebp, [esi + 1]
cmp ecx, 0xf
mov dword [esp + 0x30], esi
jb 0x48f94f
lea eax, [ecx - 0xf]
mov byte [esi], 0xf0
cmp eax, 0xff
jb 0x48f945
lea eax, [ecx - 0x10e]
mov dword [esp], ecx
mov ecx, 0x80808081
mul ecx
mov edi, edx
shr edi, 7
lea eax, [edi + 1]
push eax
push 0xff
push ebp
call sub.msvcrt.dll_memset
mov ecx, dword [esp + 0xc]
add esp, 0xc
mov eax, edi
shl eax, 8
lea ebp, [esi + edi]
add ebp, 2
sub edi, eax
lea eax, [ecx + edi]
add eax, 0xfffffef2
mov edx, dword [esp + 0x38]
mov byte [ebp], al
inc ebp
jmp 0x48f95a
mov eax, ecx
shl al, 4
mov byte [esi], al
mov edx, dword [esp + 0x38]
add ecx, ebp
lea eax, [edx + ebp]
mov esi, dword [esp + 4]
sub eax, esi
mov edi, ecx
lea ecx, [ebp + 8]
cmp eax, ecx
cmovbe eax, ecx
mov edx, ebp
not edx
add edx, eax
mov eax, esi
mov ecx, ebp
cmp edx, 0x18
jb 0x48f9dd
mov esi, ebp
mov eax, dword [esp + 4]
sub esi, eax
mov ecx, ebp
cmp esi, 0x20
jb 0x48f9dd
mov dword [esp], edi
shr edx, 3
inc edx
mov edi, edx
and edi, 0xfffffffc
mov eax, dword [esp + 4]
lea eax, [eax + edi*8]
lea ecx, [edi*8]
add ecx, ebp
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x68]
add ebx, esi
add ebx, 0x10
xor esi, esi
movups xmm0, xmmword [ebx + esi*8 - 0x10]
movups xmm1, xmmword [ebx + esi*8]
movups xmmword [ebp + esi*8], xmm0
movups xmmword [ebp + esi*8 + 0x10], xmm1
add esi, 4
cmp edi, esi
jne 0x48f9b8
cmp edx, edi
mov ebx, dword [esp + 0x18]
mov edi, dword [esp]
je 0x48f9ef
movsd xmm0, qword [eax]
movsd qword [ecx], xmm0
add ecx, 8
add eax, 8
cmp ecx, edi
jb 0x48f9dd
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0xa0]
lea ecx, [eax - 4]
mov eax, ecx
mov edx, 0x80808081
mul edx
sub esi, dword [esp + 0x80]
mov word [edi], si
cmp dword [esp + 0x128], 0
je 0x48fa30
shr edx, 7
lea eax, [edi + edx]
add eax, 8
cmp eax, dword [esp + 0xac]
ja 0x492d8b
add edi, 2
mov esi, edi
mov edx, dword [esp + 0x30]
movzx eax, byte [edx]
cmp ecx, 0xf
jb 0x48faa4
add al, 0xf
mov byte [edx], al
mov edx, dword [esp + 0xa0]
lea eax, [edx - 0x13]
cmp eax, 0x1fe
jb 0x48facb
lea eax, [edx - 0x211]
mov ecx, 0x80808081
mul ecx
mov edi, edx
shr edi, 8
lea eax, [edi*2 + 2]
push eax
push 0xff
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x38]
lea eax, [eax + edi*2]
sub eax, dword [esp + 4]
add ebp, eax
add ebp, 4
imul eax, edi, 0xfffffe02
mov edx, dword [esp + 0xa0]
add eax, edx
add eax, 0xfffffdef
jmp 0x48facd
add al, cl
mov byte [edx], al
mov ebp, esi
mov edi, ebp
mov edx, dword [esp + 0x4c]
mov eax, edx
cmp edx, dword [esp + 0xd0]
mov esi, dword [esp + 0x8c]
jbe 0x48cd1c
jmp 0x4928a4
mov ebp, esi
cmp eax, 0xff
jb 0x48f62a
add eax, 0xffffff01
mov byte [ebp], 0xff
jmp 0x48f625
mov ebx, dword [esp + 0x18]
jmp 0x492a4a
mov eax, dword [esp + 0xdc]
lea ecx, [eax + esi]
add ecx, 0xfffffffb
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0xf4]
lea edi, [ecx - 8]
lea ecx, [ecx - 6]
mov dword [esp + 0xe4], ecx
lea ecx, [esi + eax - 5]
mov dword [esp + 0xf0], ecx
mov ecx, dword [esp + 0x54]
lea edx, [ecx + 0x4c]
mov dword [esp + 0xfc], edx
add ecx, 0x50
mov dword [esp + 0xf8], ecx
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x5c], eax
mov ecx, eax
mov dword [esp + 0x10], edi
jmp 0x48fb5e
inc ecx
cmp ecx, dword [esp + 0xd0]
ja 0x48cbd9
mov edx, dword [ebx + 0x40004]
mov esi, dword [ebx + 0x4000c]
mov eax, ecx
mov dword [esp + 0x60], edx
sub eax, edx
lea edx, [eax + esi]
mov edi, dword [ebx + 0x40010]
lea ebp, [edi + 0x10000]
mov dword [esp + 0x84], ebp
cmp ebp, edx
lea eax, [eax + esi - 0xffff]
mov dword [esp + 0x9c], edi
cmova eax, edi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x2c], esi
neg esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x3c], ecx
mov eax, dword [ecx]
mov dword [esp], eax
mov eax, dword [ebx + 0x40014]
mov dword [esp + 0x30], edx
cmp eax, edx
jae 0x48fc10
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x44]
add ecx, edx
jmp 0x48fbe5
movzx edi, ax
mov word [ebx + edi*2 + 0x20000], si
mov dword [ebx + edx*4], eax
inc eax
cmp eax, dword [esp + 0x30]
jae 0x48fc10
imul edx, dword [ecx + eax], 0x9e3779b1
shr edx, 0x11
mov esi, eax
sub esi, dword [ebx + edx*4]
cmp esi, 0xffff
jb 0x48fbd0
mov esi, 0xffff
jmp 0x48fbd0
mov edx, dword [esp]
movzx eax, dx
mov ecx, edx
shr ecx, 0x10
xor ecx, eax
movzx eax, dl
shr edx, 0x18
xor edx, eax
or edx, ecx
mov eax, dword [ebx + 0x40008]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x30]
mov dword [ebx + 0x40014], eax
sete byte [esp + 0x7c]
cmp dword [esp + 0xbc], 0
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x2c]
jle 0x48fb50
imul eax, dword [ecx], 0x9e3779b1
shr eax, 0x11
mov eax, dword [ebx + eax*4]
cmp eax, dword [esp + 0x6c]
jb 0x48fb50
mov dword [esp + 4], eax
mov eax, ecx
sub eax, dword [esp + 0x5c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x9c]
mov ebp, eax
neg ebp
sub esi, eax
mov edx, dword [esp + 0x34]
mov dword [esp + 0xc0], esi
lea eax, [edx + esi]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x60]
add dword [esp + 0x44], eax
lea esi, [ecx + 4]
mov dword [esp + 0x24], esi
lea esi, [ecx + 8]
mov dword [esp + 0xa8], esi
add ebp, edx
mov dword [esp + 0xe0], ebp
mov edx, 0xfffffffc
sub edx, ecx
mov dword [esp + 0x88], edx
mov esi, dword [esp + 0x2c]
lea edx, [esi - 4]
mov dword [esp + 0x98], edx
add eax, 4
mov dword [esp + 0xac], eax
lea eax, [esi + ecx]
mov dword [esp + 0x70], eax
mov dword [esp + 0x20], 0
mov esi, 3
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x64], eax
mov dword [esp + 0x28], 0
xor ebp, ebp
mov dword [esp + 0x74], 0
nop word cs:[eax + eax]
mov dword [esp + 0xc], ebp
cmp byte [esp + 0x94], 0
mov edx, dword [esp + 4]
je 0x48fd41
mov eax, dword [esp + 0x30]
sub eax, edx
cmp eax, 8
jb 0x48fe00
mov ebp, dword [esp + 0x2c]
sub ebp, edx
jbe 0x48fdb0
cmp edx, dword [esp + 0x98]
ja 0x48fe00
mov edi, edx
sub edi, dword [esp + 0x9c]
add edi, dword [esp + 0x34]
mov eax, dword [esp]
cmp dword [edi], eax
jne 0x490049
mov dword [esp + 0x14], esi
add ebp, ecx
mov eax, dword [esp + 0x50]
cmp ebp, eax
mov edx, ebp
cmova edx, eax
lea eax, [edi + 4]
mov dword [esp + 8], edx
add edx, 0xfffffffd
mov ebx, dword [esp + 0x24]
cmp edx, ebx
jbe 0x490099
mov esi, dword [ebx]
xor esi, dword [eax]
je 0x49008d
tzcnt ebx, esi
shr ebx, 3
jmp 0x4900f4
mov eax, dword [esp + 0x44]
lea ebp, [eax + edx]
movzx eax, word [ecx + esi - 1]
cmp ax, word [esi + ebp - 1]
jne 0x48fe00
mov eax, dword [esp]
cmp dword [ebp], eax
jne 0x48fe00
lea ebx, [ebp + 4]
mov eax, dword [esp + 0x24]
cmp edi, eax
jbe 0x4901ee
mov eax, dword [eax]
xor eax, dword [ebx]
je 0x4901e4
tzcnt eax, eax
shr eax, 3
mov ebx, dword [esp + 0x18]
add eax, 4
cmp eax, esi
jg 0x4905b0
jmp 0x48fe02
xor eax, eax
cmp eax, esi
jne 0x48ffa0
add edx, esi
cmp edx, dword [esp + 0x30]
ja 0x48feb0
cmp eax, 4
jl 0x48feb0
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], eax
add eax, 0xfffffffd
mov dword [esp + 8], eax
xor ebp, ebp
mov edi, 0x10
mov edx, 1
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 0x20]
nop word cs:[eax + eax]
mov eax, edx
lea edx, [ecx + ebp]
movzx edx, dx
mov esi, dword [esp + 0x18]
movzx edx, word [esi + edx*2 + 0x20000]
lea esi, [edi + 1]
sar edi, 4
cmp eax, edx
cmova edx, eax
mov eax, 0x10
cmovb esi, eax
cmovb ebx, ebp
add ebp, edi
mov edi, esi
cmp ebp, dword [esp + 8]
jl 0x48fe50
mov dword [esp + 0x20], ebx
cmp edx, 1
mov edi, dword [esp + 0x10]
ja 0x49001a
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0x14]
nop word cs:[eax + eax]
mov ebp, dword [esp + 0xc]
mov edx, dword [esp + 4]
movzx eax, dx
cmp word [ebx + eax*2 + 0x20000], 1
jne 0x48ffb6
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x490170
cmp dword [esp + 0x28], 0
je 0x48ffbf
cmp dword [esp + 0x28], 2
jne 0x490170
mov dword [esp + 0xc], ebp
lea ebp, [edx - 1]
cmp ebp, dword [esp + 0x6c]
jb 0x490054
mov ebx, ecx
mov ecx, dword [esp + 0x2c]
mov eax, ecx
sub eax, edx
mov dword [esp + 0x28], 2
cmp eax, 3
jb 0x490153
cmp ebp, ecx
mov edi, dword [esp + 0x44]
cmovb edi, dword [esp + 0xe0]
mov eax, dword [esp]
cmp dword [edi + ebp], eax
jne 0x49014f
mov dword [esp + 0x14], esi
lea eax, [edi + ebp]
cmp ebp, ecx
mov ebx, dword [esp + 0x50]
cmovb ebx, dword [esp + 0x38]
mov dword [esp + 8], eax
add eax, 4
lea edx, [ebx - 3]
mov ecx, eax
cmp edx, eax
jbe 0x48ff75
mov ecx, dword [esp + 4]
lea esi, [ecx + edi]
add esi, 3
mov ecx, eax
mov edi, dword [ecx]
xor edi, dword [esp]
jne 0x4901aa
add ecx, 4
add esi, 4
cmp ecx, edx
jb 0x48ff60
cmp ecx, ebx
mov edi, dword [esp + 0x10]
jae 0x4901b7
mov esi, ebx
sub esi, ecx
mov edx, dword [esp]
cmp byte [ecx], dl
jne 0x4901b7
inc ecx
shr edx, 8
dec esi
jne 0x48ff88
mov ecx, ebx
jmp 0x4901b7
mov ebp, dword [esp + 0xc]
movzx eax, dx
cmp word [ebx + eax*2 + 0x20000], 1
je 0x48feca
mov eax, dword [esp + 0x20]
jmp 0x490170
mov dword [esp + 0x28], 1
cmp byte [esp + 0x7c], 0
je 0x490170
mov eax, dword [esp + 0x24]
mov ebp, eax
cmp edi, eax
jbe 0x48fff1
nop dword [eax]
mov edx, dword [eax]
xor edx, dword [esp]
jne 0x49005d
add eax, 4
add ebp, 4
cmp eax, edi
jb 0x48ffe0
mov edx, dword [esp + 0x50]
cmp eax, edx
jae 0x490066
sub edx, ebp
lea edi, [eax + edx]
mov ebx, dword [esp]
cmp byte [eax], bl
jne 0x49000e
inc eax
shr ebx, 8
dec edx
jne 0x490001
mov eax, edi
mov ebp, eax
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
jmp 0x490066
mov esi, dword [esp + 4]
cmp edx, esi
mov eax, 0
cmova edx, eax
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
mov ebp, dword [esp + 0xc]
ja 0x49064d
sub esi, edx
mov dword [esp + 4], esi
mov esi, dword [esp + 0x1c]
jmp 0x490183
xor eax, eax
mov edi, dword [esp + 0x10]
jmp 0x48fe02
mov ebp, dword [esp + 0xc]
jmp 0x490170
tzcnt eax, edx
shr eax, 3
add ebp, eax
mov edx, dword [esp + 4]
sub ebp, dword [esp + 0x24]
add ebp, 4
mov dword [esp + 0x28], 2
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x28], 2
je 0x48feec
jmp 0x490170
add edi, 8
mov eax, edi
mov ebx, dword [esp + 0xa8]
cmp ebx, edx
jae 0x4900c3
mov esi, dword [esp + 0x88]
lea edi, [esi + ebx]
nop word [eax + eax]
mov esi, dword [ebx]
xor esi, dword [eax]
jne 0x4900eb
add ebx, 4
add eax, 4
add edi, 4
cmp ebx, edx
jb 0x4900b0
mov edx, dword [esp + 8]
dec edx
cmp ebx, edx
jae 0x490564
movzx edx, word [eax]
cmp dx, word [ebx]
mov edi, dword [esp + 0x10]
jne 0x490568
add ebx, 2
add eax, 2
jmp 0x490568
tzcnt ebx, esi
shr ebx, 3
add ebx, edi
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
lea eax, [ebx + 4]
cmp ebp, dword [esp + 0x50]
jae 0x490591
lea edx, [ecx + ebx]
add edx, 4
mov ebx, dword [esp + 8]
cmp edx, ebx
jne 0x490591
mov edx, ebx
mov ecx, eax
mov eax, dword [esp + 0x60]
mov ebp, eax
cmp edi, ebx
jbe 0x490249
mov ebx, edx
mov edx, dword [edx]
xor edx, dword [eax]
je 0x49023f
tzcnt ebx, edx
shr ebx, 3
mov edx, dword [esp + 4]
mov eax, ecx
mov ecx, dword [esp + 0x3c]
jmp 0x4902e3
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0xc]
mov eax, dword [esp + 0x20]
mov ecx, ebx
mov ebx, dword [esp + 0x18]
nop word cs:[eax + eax]
add eax, edx
movzx eax, ax
movzx eax, word [ebx + eax*2 + 0x20000]
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
cmp eax, dword [esp + 0x6c]
jb 0x490660
mov edx, dword [esp + 0x64]
lea eax, [edx - 1]
cmp edx, 1
mov dword [esp + 0x64], eax
jg 0x48fd20
jmp 0x490660
tzcnt ecx, edi
shr ecx, 3
add ecx, esi
mov edi, dword [esp + 0x10]
sub ecx, eax
lea ebx, [ecx + 4]
cmp ebp, dword [esp + 0x2c]
jae 0x4902f6
mov eax, dword [esp + 8]
lea edx, [eax + ebx]
cmp edx, dword [esp + 0x38]
je 0x490300
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 8]
jmp 0x490371
lea ebx, [ebp + 8]
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x14], esi
cmp eax, edi
jae 0x490217
mov edx, dword [esp + 0x88]
add edx, eax
nop
mov esi, dword [eax]
xor esi, dword [ebx]
jne 0x4902ad
add eax, 4
add ebx, 4
add edx, 4
cmp eax, edi
jb 0x490200
cmp eax, dword [esp + 0xe4]
jae 0x4905bb
movzx edx, word [ebx]
cmp dx, word [eax]
mov esi, dword [esp + 0x14]
jne 0x4905bf
add eax, 2
add ebx, 2
jmp 0x4905bf
add ebx, 4
mov ebp, dword [esp + 0xac]
cmp ebx, edi
jae 0x49060a
mov esi, dword [esp + 0x70]
sub esi, dword [esp + 4]
mov eax, dword [esp + 0xf0]
cmp esi, eax
cmovae esi, eax
mov edx, ebx
sub edx, esi
mov eax, ecx
mov ecx, dword [esp + 0x3c]
nop
mov esi, dword [ebx]
xor esi, dword [ebp]
jne 0x4902d2
add ebx, 4
add ebp, 4
add edx, 4
cmp ebx, edi
jb 0x490270
cmp ebx, dword [esp + 0xe4]
jae 0x49061d
movzx edx, word [ebp]
cmp dx, word [ebx]
mov esi, dword [esp + 0x14]
jne 0x490621
add ebx, 2
add ebp, 2
jmp 0x490621
tzcnt eax, esi
shr eax, 3
add eax, edx
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 4]
add eax, 4
cmp eax, esi
jg 0x4905b0
jmp 0x48fe02
tzcnt ebx, esi
shr ebx, 3
add ebx, edx
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 4]
add eax, ebx
cmp eax, esi
mov ebx, dword [esp + 0x18]
jg 0x4905a1
jmp 0x48fe02
mov ecx, dword [esp + 0x60]
mov edi, dword [esp + 8]
jmp 0x490371
mov dword [esp + 0x20], ebx
shl ecx, 3
mov ebx, dword [esp]
rol ebx, cl
mov eax, dword [esp + 0x60]
mov edx, eax
mov ecx, eax
cmp edi, eax
jbe 0x490330
nop dword [eax + eax]
mov esi, dword [ecx]
xor esi, ebx
jne 0x490356
add ecx, 4
add edx, 4
cmp ecx, edi
jb 0x490320
mov esi, dword [esp + 0x50]
cmp ecx, esi
mov edi, dword [esp + 8]
jae 0x490350
sub esi, edx
lea edx, [ecx + esi]
cmp byte [ecx], bl
jne 0x49034e
inc ecx
shr ebx, 8
dec esi
jne 0x490341
mov ecx, edx
mov edx, ecx
mov ebx, dword [esp + 0x20]
jmp 0x490367
tzcnt ecx, esi
shr ecx, 3
add edx, ecx
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 8]
sub ebx, dword [esp + 0x60]
add ebx, edx
mov ecx, dword [esp + 0x34]
mov eax, dword [esp]
mov dword [esp + 0x90], eax
lea esi, [ecx + 4]
nop
mov edx, edi
cmp edi, esi
jb 0x490391
lea edi, [edx - 4]
mov eax, dword [esp]
cmp dword [edx - 4], eax
je 0x490380
mov dword [esp + 0x20], ebx
cmp edx, ecx
jbe 0x490601
lea esi, [esp + 0x93]
mov edi, dword [esp + 0x10]
nop dword [eax + eax]
movzx ebx, byte [edx - 1]
cmp bl, byte [esi]
jne 0x4903c0
dec edx
dec esi
cmp edx, ecx
ja 0x4903b0
mov edx, ecx
mov ecx, dword [esp + 8]
mov ebx, ecx
sub ebx, edx
mov eax, dword [esp + 0x2c]
cmp ebp, eax
mov esi, dword [esp + 0x14]
jb 0x490474
mov dword [esp + 4], ebx
sub ecx, ebx
cmp ecx, dword [esp + 0x60]
jne 0x490470
cmp eax, dword [esp + 0x9c]
jbe 0x490470
mov ebx, dword [esp + 4]
mov ecx, ebx
neg ecx
shl ecx, 3
mov edx, dword [esp]
rol edx, cl
mov dword [esp + 0x90], edx
mov esi, dword [esp + 0xc0]
mov dword [esp + 0x1c], ebp
nop word cs:[eax + eax]
cmp esi, 4
jl 0x4905e9
lea ecx, [esi - 4]
mov eax, dword [esp + 0x34]
cmp dword [eax + esi - 4], edx
mov esi, ecx
je 0x490420
mov eax, dword [esp + 0x34]
add ecx, eax
add ecx, 4
mov esi, dword [esp + 0x14]
lea edx, [esp + 0x93]
nop dword [eax]
movzx eax, byte [ecx - 1]
cmp al, byte [edx]
jne 0x490464
dec ecx
dec edx
cmp ecx, dword [esp + 0x34]
ja 0x490450
mov ecx, dword [esp + 0x34]
add ebx, dword [esp + 0x38]
sub ebx, ecx
mov ebp, dword [esp + 0x1c]
jmp 0x490474
mov ebx, dword [esp + 4]
mov edx, ebp
sub ebp, ebx
mov eax, dword [esp + 0x6c]
cmp ebp, eax
cmovbe ebp, eax
mov eax, edx
mov dword [esp + 4], ebp
sub edx, ebp
mov ebx, dword [esp + 0x20]
add edx, ebx
mov ebp, dword [esp + 0xc]
cmp ebx, ebp
ja 0x4904d0
cmp edx, ebp
jb 0x4904d0
sub eax, ebp
add ebx, eax
mov eax, ebx
not eax
mov ecx, dword [esp + 0x2c]
add eax, ecx
cmp eax, 3
cmovb ebx, ecx
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], 2
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
jmp 0x490183
mov eax, dword [esp + 4]
not eax
mov ecx, dword [esp + 0x2c]
add eax, ecx
mov dword [esp + 0x20], 0
mov dword [esp + 0x28], 2
cmp eax, 3
mov ebx, dword [esp + 0x18]
jae 0x490506
mov dword [esp + 4], ecx
mov ebp, dword [esp + 0xc]
mov ecx, dword [esp + 0x3c]
jmp 0x490183
mov ebp, dword [esp + 0xc]
cmp edx, ebp
cmovae edx, ebp
cmp esi, edx
jae 0x490540
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 4]
cmp eax, 0xffff
mov ecx, dword [esp + 0x3c]
ja 0x490660
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 4]
add eax, esi
mov dword [esp + 0x74], eax
mov esi, edx
mov edx, dword [esp + 4]
jmp 0x490548
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x3c]
movzx eax, dx
movzx eax, word [ebx + eax*2 + 0x20000]
sub edx, eax
mov dword [esp + 4], edx
jae 0x490183
jmp 0x490660
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 8]
cmp ebx, edx
jae 0x490580
movzx eax, byte [eax]
xor edx, edx
cmp al, byte [ebx]
sete dl
add ebx, edx
sub ebx, dword [esp + 0x24]
lea eax, [ebx + 4]
cmp ebp, dword [esp + 0x50]
jb 0x490109
mov edx, dword [esp + 4]
cmp eax, esi
mov ebx, dword [esp + 0x18]
jle 0x48fe02
mov esi, ecx
mov ecx, eax
mov eax, dword [esp + 0x44]
lea ebp, [eax + edx]
mov eax, ecx
mov ecx, esi
mov dword [esp + 0x74], ebp
mov esi, eax
jmp 0x48fe02
mov esi, dword [esp + 0x14]
cmp eax, dword [esp + 0x50]
jae 0x4905d1
movzx edx, byte [ebx]
xor ebx, ebx
cmp dl, byte [eax]
sete bl
add eax, ebx
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 4]
sub eax, dword [esp + 0x24]
add eax, 4
cmp eax, esi
jg 0x4905b0
jmp 0x48fe02
mov eax, dword [esp + 0x34]
lea ecx, [eax + esi]
test esi, esi
mov esi, dword [esp + 0x14]
jg 0x490445
jmp 0x490464
mov edi, dword [esp + 0x10]
jmp 0x4903c0
mov eax, ecx
mov ecx, dword [esp + 0x3c]
cmp ebx, dword [esp + 0xe4]
jb 0x490291
mov esi, dword [esp + 0x14]
cmp ebx, dword [esp + 0x50]
jae 0x490640
movzx edx, byte [ebp]
mov byte [esp + 0x14], dl
movzx edx, byte [esp + 0x14]
cmp dl, byte [ebx]
mov edx, 0
sete dl
add ebx, edx
mov edx, dword [esp + 4]
sub ebx, dword [esp + 8]
jmp 0x4902e3
mov esi, dword [esp + 0x1c]
nop word cs:[eax + eax]
cmp esi, 4
jl 0x48fb50
lea eax, [esi - 0x13]
cmp eax, 0x12
mov edi, esi
mov eax, 0x12
cmovb edi, eax
cmp byte [esp + 0x94], 0
cmove edi, esi
mov eax, ecx
sub eax, dword [esp + 0x74]
mov dword [esp + 8], eax
cmp dword [esp + 0xec], edi
mov dword [esp], edi
jae 0x490737
mov ebp, dword [esp + 0x40]
mov eax, ebp
mov edi, 0x80808081
mul edi
cmp dword [esp + 0x128], 0
je 0x4906d1
shr edx, 7
mov eax, dword [esp + 0x78]
add eax, edx
inc eax
add eax, ebp
add eax, 8
cmp eax, dword [esp + 0xb8]
ja 0x492ba0
mov esi, dword [esp + 0x78]
lea ebx, [esi + 1]
cmp ebp, 0xf
mov edx, ebp
jb 0x49082a
lea eax, [edx - 0xf]
mov byte [esi], 0xf0
cmp eax, 0xff
mov ebp, dword [esp]
jb 0x49072f
lea eax, [edx - 0x10e]
mul edi
mov edi, edx
shr edi, 7
lea eax, [edi + 1]
push eax
push 0xff
push ebx
call sub.msvcrt.dll_memset
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
add esp, 0xc
mov eax, edi
shl eax, 8
lea ebx, [esi + edi]
add ebx, 2
sub edi, eax
lea eax, [edx + edi]
add eax, 0xfffffef2
mov byte [ebx], al
inc ebx
jmp 0x490834
mov dword [esp + 0x14], esi
mov edx, dword [esp + 0x40]
cmp edx, 0xe
mov esi, 0x80808081
jle 0x490765
lea eax, [edx - 0xf]
mul esi
shr edx, 7
mov eax, dword [esp + 0x40]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x40]
add eax, edx
inc eax
mov edx, dword [esp + 0x40]
jmp 0x49076a
lea ecx, [edx + 1]
mov eax, edx
mov ebx, dword [esp + 0x54]
mov dword [ebx + 8], 1
mov dword [ebx + 4], 0
mov dword [ebx + 0xc], edx
mov dword [ebx], eax
mov eax, ecx
cmp ecx, 0xf
jl 0x490794
lea eax, [ecx - 0xf]
mul esi
shr edx, 7
lea eax, [ecx + edx]
inc eax
mov edx, 0x80808081
mov dword [ebx + 0x18], 1
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x1c], ecx
mov dword [ebx + 0x10], eax
mov ebp, dword [esp + 0x40]
lea edi, [ebp + 2]
cmp ebp, 0xd
jl 0x4907e2
lea eax, [ebp - 0xd]
mul edx
shr edx, 7
lea esi, [ebp + 3]
lea eax, [edx + ebp]
add eax, 3
mov dword [ebx + 0x28], 1
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x2c], edi
mov dword [ebx + 0x20], eax
mov edx, ebp
jmp 0x490806
mov dword [ebx + 0x28], 1
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x2c], edi
mov dword [ebx + 0x20], edi
mov esi, 0xf
cmp ebp, 0xc
mov edx, ebp
jne 0x490987
mov dword [esp + 4], esi
lea eax, [edx - 0xc]
mov ebp, 0x80808081
mul ebp
shr edx, 7
mov eax, dword [esp + 0x40]
lea edi, [eax + edx]
add edi, 4
mov edx, dword [esp + 0x40]
jmp 0x490993
mov eax, edx
shl al, 4
mov byte [esi], al
mov ebp, dword [esp]
lea eax, [ebx + ecx]
mov edi, dword [esp + 0x5c]
sub eax, edi
lea ecx, [ebx + 8]
cmp eax, ecx
cmovbe eax, ecx
lea esi, [ebx + edx]
mov edx, ebx
not edx
add edx, eax
mov eax, edi
mov ecx, ebx
cmp edx, 0x18
jb 0x4908b0
mov edi, ebx
mov eax, dword [esp + 0x5c]
sub edi, eax
mov ecx, ebx
cmp edi, 0x20
jb 0x4908b0
shr edx, 3
inc edx
mov dword [esp + 4], edx
mov edi, edx
and edi, 0xfffffffc
mov edx, dword [esp + 0x5c]
lea eax, [edx + edi*8]
lea ecx, [ebx + edi*8]
xor ebp, ebp
nop
movups xmm0, xmmword [edx + ebp*8]
movups xmm1, xmmword [edx + ebp*8 + 0x10]
movups xmmword [ebx + ebp*8], xmm0
movups xmmword [ebx + ebp*8 + 0x10], xmm1
add ebp, 4
cmp edi, ebp
jne 0x490880
cmp dword [esp + 4], edi
mov ebp, dword [esp]
je 0x4908c2
nop word cs:[eax + eax]
movsd xmm0, qword [eax]
movsd qword [ecx], xmm0
add ecx, 8
add eax, 8
cmp ecx, esi
jb 0x4908b0
lea ecx, [ebp - 4]
mov eax, ecx
mov edi, 0x80808081
mul edi
mov eax, dword [esp + 8]
mov word [esi], ax
cmp dword [esp + 0x128], 0
je 0x4908f5
shr edx, 7
lea eax, [esi + edx]
add eax, 8
cmp eax, dword [esp + 0xb8]
ja 0x492bac
add esi, 2
mov edx, dword [esp + 0x78]
movzx eax, byte [edx]
cmp ecx, 0xf
jb 0x49096c
add al, 0xf
mov byte [edx], al
lea eax, [ebp - 0x13]
cmp eax, 0x1fe
jb 0x49094f
lea eax, [ebp - 0x211]
mul edi
mov edi, edx
shr edi, 8
lea eax, [edi*2 + 2]
push eax
push 0xff
push esi
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x40]
lea eax, [eax + edi*2]
lea esi, [ebx + eax]
add esi, 4
imul eax, edi, 0xfffffe02
add eax, ebp
add eax, 0xfffffdef
mov ecx, dword [esp + 0x3c]
cmp eax, 0xff
mov ebx, dword [esp + 0x18]
jb 0x490967
add eax, 0xffffff01
mov byte [esi], 0xff
inc esi
mov byte [esi], al
inc esi
jmp 0x490978
add al, cl
mov byte [edx], al
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
add ecx, ebp
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x78], esi
jmp 0x48fb51
lea edi, [edx + 3]
mov dword [esp + 4], edi
mov ebp, 0x80808081
lea eax, [edx - 0xf]
mov esi, edx
mul ebp
shr edx, 7
add ecx, edx
cmp esi, 0xf
mov dword [ebx + 0x38], 1
mov dword [ebx + 0x34], 0
mov eax, dword [esp + 4]
mov dword [ebx + 0x3c], eax
mov dword [ebx + 0x30], edi
cmovl ecx, esi
lea esi, [ecx + 3]
add ecx, 4
mov edi, dword [esp]
neg edi
mov ebx, 4
mov ebp, dword [esp + 0xfc]
jmp 0x490a01
mov dword [ebp - 4], ebx
mov eax, dword [esp + 8]
mov dword [ebp - 8], eax
mov eax, dword [esp + 0x40]
mov dword [ebp], eax
mov dword [ebp - 0xc], edx
lea eax, [edi + ebx]
inc eax
inc ebx
add ebp, 0x10
cmp eax, 1
je 0x490a19
mov edx, esi
cmp ebx, 0x13
jb 0x4909e0
lea eax, [ebx - 0x13]
mov edx, 0x80808081
mul edx
shr edx, 7
add edx, ecx
jmp 0x4909e0
mov ebp, dword [esp]
mov eax, ebp
shl eax, 4
mov esi, dword [esp + 0x54]
mov dword [esi + eax + 0x18], 1
mov dword [esi + eax + 0x14], 0
mov dword [esi + eax + 0x1c], 1
mov ecx, dword [esi + eax]
lea edx, [ecx + 1]
mov dword [esi + eax + 0x10], edx
mov dword [esi + eax + 0x28], 1
mov dword [esi + eax + 0x24], 0
mov dword [esi + eax + 0x2c], 2
lea edx, [ecx + 2]
mov dword [esi + eax + 0x20], edx
mov dword [esi + eax + 0x38], 1
mov dword [esi + eax + 0x34], 0
mov dword [esi + eax + 0x3c], 3
add ecx, 3
mov dword [esi + eax + 0x30], ecx
cmp ebp, 1
mov edi, dword [esp + 0x10]
jle 0x4925b2
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x2c]
add eax, ecx
inc eax
mov dword [esp + 0xd4], eax
sub eax, dword [esp + 0x60]
mov dword [esp + 0x40], eax
mov eax, 0xfffffffb
sub eax, ecx
mov dword [esp + 0x80], eax
lea eax, [ecx + 5]
mov dword [esp + 0xcc], eax
mov eax, 1
mov dword [esp + 0x7c], 0
mov dword [esp + 0x14], ebp
mov edx, dword [esp + 0xf8]
mov dword [esp + 0xb0], edx
jmp 0x490b96
mov dword [esp + 0x14], esi
mov eax, esi
shl eax, 4
mov esi, dword [esp + 0x54]
mov dword [esi + eax + 0x18], 1
mov dword [esi + eax + 0x14], 0
mov dword [esi + eax + 0x1c], 1
mov ecx, dword [esi + eax]
lea edx, [ecx + 1]
mov dword [esi + eax + 0x10], edx
mov dword [esi + eax + 0x28], 1
mov dword [esi + eax + 0x24], 0
mov dword [esi + eax + 0x2c], 2
lea edx, [ecx + 2]
mov dword [esi + eax + 0x20], edx
mov dword [esi + eax + 0x38], 1
mov dword [esi + eax + 0x34], 0
mov dword [esi + eax + 0x3c], 3
add ecx, 3
mov dword [esi + eax + 0x30], ecx
mov edi, dword [esp + 0x10]
nop dword [eax]
mov eax, dword [esp + 0x88]
inc dword [esp + 0x40]
inc dword [esp + 0x7c]
dec dword [esp + 0x80]
inc dword [esp + 0xd4]
inc dword [esp + 0xcc]
add dword [esp + 0xb0], 0x10
cmp eax, dword [esp + 0x14]
jge 0x4925b2
mov edx, eax
mov eax, dword [esp + 0x3c]
add eax, edx
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0xd0]
ja 0x4925b2
lea eax, [edx + 1]
mov dword [esp + 0x88], eax
mov ebp, eax
shl ebp, 4
mov dword [esp + 0xa8], edx
shl edx, 4
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc8], ebp
mov ebp, dword [eax + ebp]
mov dword [esp + 0xd8], edx
mov edx, dword [eax + edx]
cmp dword [esp + 0x8c], 0xc
jne 0x4916f0
mov dword [esp + 0xc4], ebp
cmp ebp, edx
jg 0x490c11
lea eax, [edx + 3]
mov ecx, dword [esp + 0x54]
mov ebp, dword [esp + 0xd8]
cmp dword [ebp + ecx + 0x40], eax
jl 0x490b60
mov dword [esp + 0xb4], edx
mov ecx, dword [esp + 0x20]
mov eax, ecx
sub eax, dword [esp + 0x60]
mov esi, dword [esp + 0x2c]
lea edx, [eax + esi]
cmp dword [esp + 0x84], edx
lea eax, [eax + esi - 0xffff]
cmova eax, dword [esp + 0x9c]
mov dword [esp + 0x6c], eax
mov eax, dword [ecx]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x40014]
mov dword [esp + 0x24], edx
cmp ecx, edx
jae 0x490cb4
mov edx, dword [esp + 0x40]
sub edx, ecx
mov eax, ecx
test dl, 1
je 0x490c9e
mov eax, dword [esp + 0x44]
imul eax, dword [eax + ecx], 0x9e3779b1
shr eax, 0x11
mov edx, ecx
mov ebx, dword [esp + 0x18]
sub edx, dword [ebx + eax*4]
cmp edx, 0xffff
mov esi, 0xffff
cmovae edx, esi
movzx esi, cx
mov word [ebx + esi*2 + 0x20000], dx
mov dword [ebx + eax*4], ecx
lea eax, [ecx + 1]
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0x7c]
add edx, esi
add ecx, dword [esp + 0x60]
cmp edx, ecx
jne 0x492193
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
mov dword [ebx + 0x40014], eax
mov edx, dword [esp + 4]
movzx eax, dx
mov ecx, edx
shr ecx, 0x10
xor ecx, eax
movzx eax, dl
shr edx, 0x18
xor edx, eax
mov esi, dword [esp + 0x20]
imul eax, dword [esi], 0x9e3779b1
shr eax, 0x11
or edx, ecx
mov ebp, dword [ebx + eax*4]
sete byte [esp + 0xe8]
cmp ebp, dword [esp + 0x6c]
jb 0x490b60
lea eax, [esi + 4]
mov dword [esp + 0x4c], eax
lea eax, [esi + 8]
mov dword [esp + 0x58], eax
mov dword [esp + 0x64], 0
mov ebx, 3
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x28], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x68], 0
mov esi, dword [esp + 0x24]
nop word [eax + eax]
cmp byte [esp + 0x94], 0
mov dword [esp + 8], ebp
je 0x490d5b
mov eax, esi
sub eax, ebp
cmp eax, 8
jb 0x490e90
mov edx, dword [esp + 0x2c]
sub edx, ebp
jbe 0x490e30
cmp ebp, dword [esp + 0x98]
ja 0x490e90
mov dword [esp + 0xc], ecx
mov eax, ebp
sub eax, dword [esp + 0x9c]
add eax, dword [esp + 0x34]
mov ecx, dword [esp + 4]
cmp dword [eax], ecx
jne 0x491109
mov dword [esp + 0x1c], ebx
add edx, dword [esp + 0x20]
mov ecx, edx
mov edx, dword [esp + 0x50]
cmp ecx, edx
mov ebp, ecx
cmova ecx, edx
lea ebx, [eax + 4]
mov dword [esp], ecx
lea edx, [ecx - 3]
mov ecx, dword [esp + 0x4c]
cmp edx, ecx
jbe 0x49168e
mov esi, dword [ecx]
xor esi, dword [ebx]
je 0x491154
tzcnt eax, esi
shr eax, 3
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x1c]
lea edx, [eax + 4]
cmp ebp, dword [esp + 0x50]
jae 0x4911d0
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x20]
add eax, edx
add eax, 4
mov esi, dword [esp]
cmp eax, esi
jne 0x4912a9
mov edx, dword [esp + 0x60]
mov ebp, edx
mov eax, esi
cmp edi, esi
jbe 0x49132f
mov eax, dword [esi]
xor eax, dword [edx]
je 0x491325
tzcnt eax, eax
shr eax, 3
mov esi, dword [esp + 0x24]
jmp 0x4913bd
mov eax, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x20]
movzx eax, word [eax + ebx - 1]
cmp ax, word [ebx + ebp - 1]
jne 0x490e90
mov eax, dword [esp + 4]
cmp dword [ebp], eax
jne 0x490e90
mov dword [esp + 0x1c], ebx
mov esi, ecx
lea eax, [ebp + 4]
mov ecx, dword [esp + 0x4c]
cmp edi, ecx
jbe 0x4916b8
mov edx, dword [ecx]
xor edx, dword [eax]
je 0x4912c2
tzcnt edx, edx
shr edx, 3
mov eax, dword [esp + 0x24]
mov ecx, esi
mov esi, eax
mov ebx, dword [esp + 0x1c]
add edx, 4
cmp edx, ebx
jg 0x4913d5
jmp 0x490e92
xor edx, edx
cmp edx, ebx
jne 0x491040
mov ebp, dword [esp + 8]
lea eax, [ebx + ebp]
cmp eax, esi
ja 0x490f40
cmp edx, 4
jl 0x490f40
mov dword [esp + 0x1c], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x74], edx
lea eax, [edx - 3]
mov dword [esp], eax
xor ebp, ebp
mov edi, 0x10
mov eax, 1
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x64]
nop dword [eax + eax]
mov ebx, eax
mov eax, dword [esp + 8]
add eax, ebp
movzx eax, ax
movzx eax, word [ecx + eax*2 + 0x20000]
lea esi, [edi + 1]
sar edi, 4
cmp ebx, eax
cmova eax, ebx
mov ebx, 0x10
cmovb esi, ebx
cmovb edx, ebp
add ebp, edi
mov edi, esi
cmp ebp, dword [esp]
jl 0x490ee0
mov dword [esp + 0x64], edx
cmp eax, 1
mov edi, dword [esp + 0x10]
ja 0x4910e2
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x1c]
jmp 0x491042
mov edx, esi
movzx eax, bp
mov esi, dword [esp + 0x18]
cmp word [esi + eax*2 + 0x20000], 1
jne 0x49105c
mov eax, dword [esp + 0x64]
test eax, eax
jne 0x4911f3
cmp dword [esp + 0x28], 0
je 0x491065
mov dword [esp + 0xc], ecx
mov ecx, ebx
cmp dword [esp + 0x28], 2
jne 0x4911ed
lea esi, [ebp - 1]
cmp esi, dword [esp + 0x6c]
jb 0x4911ed
mov eax, dword [esp + 0x2c]
sub eax, ebp
mov dword [esp + 0x28], 2
cmp eax, 3
jb 0x4911e5
mov ebx, esi
cmp ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x44]
cmovb edi, dword [esp + 0xe0]
mov eax, dword [esp + 4]
cmp dword [edi + ebx], eax
jne 0x4911e1
mov ebp, ebx
mov dword [esp + 0x1c], ecx
lea eax, [edi + ebx]
cmp ebx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x50]
cmovb ebx, dword [esp + 0x38]
mov dword [esp], eax
add eax, 4
lea edx, [ebx - 3]
mov ecx, eax
cmp edx, eax
jbe 0x491016
mov ecx, dword [esp + 8]
lea esi, [ecx + edi]
add esi, 3
mov ecx, eax
nop word cs:[eax + eax]
mov edi, dword [ecx]
xor edi, dword [esp + 4]
jne 0x491225
add ecx, 4
add esi, 4
cmp ecx, edx
jb 0x491000
cmp ecx, ebx
jae 0x49122e
mov esi, ebx
sub esi, ecx
mov edx, dword [esp + 4]
cmp byte [ecx], dl
jne 0x49122e
inc ecx
shr edx, 8
dec esi
jne 0x491026
mov ecx, ebx
jmp 0x49122e
mov edx, esi
mov ebp, dword [esp + 8]
movzx eax, bp
mov esi, dword [esp + 0x18]
cmp word [esi + eax*2 + 0x20000], 1
je 0x490f58
mov eax, dword [esp + 0x64]
jmp 0x4911f3
mov dword [esp + 0x28], 1
cmp byte [esp + 0xe8], 0
je 0x4911f3
mov ebp, ecx
mov edx, dword [esp + 0xcc]
mov ecx, dword [esp + 0x4c]
mov eax, ecx
cmp edi, ecx
mov ecx, edx
mov dword [esp + 0xc], ebp
jbe 0x4916a1
nop dword [eax + eax]
mov edx, dword [eax]
xor edx, dword [esp + 4]
jne 0x491118
add eax, 4
add ecx, 4
cmp eax, edi
jb 0x4910a0
mov edx, dword [esp + 0x50]
cmp eax, edx
jae 0x491121
mov esi, ebx
sub edx, ecx
lea edi, [eax + edx]
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 8]
cmp byte [eax], bl
jne 0x4910d6
inc eax
shr ebx, 8
dec edx
jne 0x4910c9
mov eax, edi
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
mov ebx, esi
jmp 0x49112b
mov ebp, dword [esp + 8]
cmp eax, ebp
mov ecx, 0
cmova eax, ecx
mov esi, dword [esp + 0x24]
ja 0x4922b5
sub ebp, eax
mov ebx, dword [esp + 0x74]
mov ecx, dword [esp + 0xc]
jmp 0x491208
xor edx, edx
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
jmp 0x490e92
tzcnt eax, edx
shr eax, 3
add ecx, eax
mov edx, dword [esp + 0x24]
mov eax, ecx
mov ebp, dword [esp + 8]
mov ecx, ebx
sub eax, dword [esp + 0x4c]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x28], 2
mov eax, dword [esp + 0x64]
cmp dword [esp + 0x28], 2
je 0x490f80
jmp 0x4911ed
add eax, 8
mov ebx, eax
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0xc]
cmp eax, edx
jae 0x491183
mov esi, dword [esp + 0x80]
lea edi, [esi + eax]
nop
mov esi, dword [eax]
xor esi, dword [ebx]
jne 0x4911ae
add eax, 4
add ebx, 4
add edi, 4
cmp eax, edx
jb 0x491170
mov edx, dword [esp]
dec edx
cmp eax, edx
jae 0x4915c9
movzx edx, word [ebx]
cmp dx, word [eax]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
jne 0x4915d1
add eax, 2
add ebx, 2
jmp 0x4915d1
tzcnt eax, esi
shr eax, 3
add eax, edi
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
lea edx, [eax + 4]
cmp ebp, dword [esp + 0x50]
jb 0x490de9
mov ebp, dword [esp + 8]
cmp edx, ebx
jle 0x490e92
jmp 0x4913cf
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 8]
mov eax, dword [esp + 0x64]
mov ebx, ecx
mov ecx, dword [esp + 0xc]
add eax, ebp
movzx eax, ax
mov esi, dword [esp + 0x18]
movzx eax, word [esi + eax*2 + 0x20000]
sub ebp, eax
mov esi, edx
cmp ebp, dword [esp + 0x6c]
jb 0x4922b9
lea eax, [ecx - 1]
cmp ecx, 1
mov ecx, eax
jg 0x490d40
jmp 0x4922b9
tzcnt ecx, edi
shr ecx, 3
add ecx, esi
sub ecx, eax
lea edi, [ecx + 4]
cmp ebp, dword [esp + 0x2c]
jae 0x4913e0
mov eax, dword [esp]
add eax, edi
cmp eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x50]
jne 0x4913f5
shl ecx, 3
mov eax, dword [esp + 4]
rol eax, cl
mov ecx, dword [esp + 0x60]
cmp dword [esp + 0x10], ecx
jbe 0x4916d2
mov edx, ecx
nop dword [eax]
mov esi, dword [ecx]
xor esi, eax
jne 0x4913e6
add ecx, 4
add edx, 4
cmp ecx, dword [esp + 0x10]
jb 0x491270
cmp ecx, ebx
jae 0x4913ef
mov esi, ebx
sub esi, edx
lea edx, [ecx + esi]
cmp byte [ecx], al
jne 0x4912a2
inc ecx
shr eax, 8
dec esi
jne 0x491295
mov ecx, edx
mov edx, ecx
jmp 0x4913ef
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 8]
mov edx, dword [esp + 0x74]
cmp edx, ebx
jg 0x4913cf
jmp 0x490e92
lea eax, [ebp + 8]
mov ebx, dword [esp + 0x58]
mov ecx, esi
cmp ebx, edi
jae 0x4912f7
mov edx, dword [esp + 0x80]
add edx, ebx
nop dword [eax + eax]
mov esi, dword [ebx]
xor esi, dword [eax]
jne 0x49138d
add ebx, 4
add eax, 4
add edx, 4
cmp ebx, edi
jb 0x4912e0
cmp ebx, dword [esp + 0xe4]
mov edx, ebx
jae 0x491604
mov esi, edx
movzx edx, word [eax]
cmp dx, word [esi]
mov edx, esi
mov ebx, dword [esp + 0x1c]
jne 0x491608
add edx, 2
add eax, 2
jmp 0x491608
lea eax, [esi + 4]
mov ebp, dword [esp + 0xac]
cmp eax, edi
jae 0x491364
mov esi, dword [esp + 0xd4]
sub esi, dword [esp + 8]
mov edx, dword [esp + 0xf0]
cmp edx, esi
cmovb esi, edx
mov edx, eax
sub edx, esi
nop
mov esi, dword [eax]
xor esi, dword [ebp]
jne 0x4913ac
add eax, 4
add ebp, 4
add edx, 4
cmp eax, edi
jb 0x491350
cmp eax, dword [esp + 0xe4]
jae 0x491636
movzx edx, word [ebp]
cmp dx, word [eax]
mov ebx, dword [esp + 0x1c]
jne 0x49163a
add eax, 2
add ebp, 2
jmp 0x49163a
tzcnt eax, esi
shr eax, 3
add eax, edx
mov edx, eax
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
add edx, 4
cmp edx, ebx
jg 0x4913d5
jmp 0x490e92
tzcnt eax, esi
shr eax, 3
add eax, edx
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 8]
mov edx, dword [esp + 0x74]
add edx, eax
cmp edx, ebx
jle 0x490e92
mov eax, dword [esp + 0x44]
add ebp, eax
mov dword [esp + 0x68], ebp
mov ebx, edx
jmp 0x490e92
mov eax, dword [esp + 0x60]
jmp 0x4913f9
tzcnt eax, esi
shr eax, 3
add edx, eax
sub edi, dword [esp + 0x60]
add edi, edx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 4]
mov dword [esp + 0x90], ecx
lea edx, [eax + 4]
mov esi, dword [esp]
nop word [eax + eax]
mov ecx, esi
cmp esi, edx
jb 0x491422
lea esi, [ecx - 4]
mov ebx, dword [esp + 4]
cmp dword [ecx - 4], ebx
je 0x491410
cmp ecx, eax
jbe 0x4916c9
lea edx, [esp + 0x93]
mov esi, dword [esp + 0x1c]
nop word cs:[eax + eax]
movzx ebx, byte [ecx - 1]
cmp bl, byte [edx]
jne 0x491450
dec ecx
dec edx
cmp ecx, eax
ja 0x491440
mov ecx, eax
mov ebx, esi
mov edx, dword [esp]
mov eax, edx
sub eax, ecx
cmp ebp, dword [esp + 0x2c]
mov esi, edi
jae 0x49146a
mov ecx, dword [esp + 0xc]
jmp 0x4914f2
sub edx, eax
cmp edx, dword [esp + 0x60]
mov ecx, dword [esp + 0xc]
jne 0x4914f2
mov edx, dword [esp + 0x2c]
cmp edx, dword [esp + 0x9c]
jbe 0x4914f2
mov ecx, eax
neg ecx
shl ecx, 3
mov edx, dword [esp + 4]
rol edx, cl
mov dword [esp + 0x90], edx
mov esi, dword [esp + 0xc0]
nop
cmp esi, 4
jl 0x491677
lea ecx, [esi - 4]
mov ebx, dword [esp + 0x34]
cmp dword [ebx + esi - 4], edx
mov esi, ecx
je 0x4914a0
mov edx, dword [esp + 0x34]
add ecx, edx
add ecx, 4
mov esi, dword [esp + 0x1c]
lea edx, [esp + 0x93]
nop dword [eax]
movzx ebx, byte [ecx - 1]
cmp bl, byte [edx]
jne 0x4914e4
dec ecx
dec edx
cmp ecx, dword [esp + 0x34]
ja 0x4914d0
mov ecx, dword [esp + 0x34]
add eax, dword [esp + 0x38]
sub eax, ecx
mov ecx, dword [esp + 0xc]
mov ebx, esi
mov esi, edi
mov edx, ebp
sub edx, eax
mov eax, dword [esp + 0x6c]
cmp edx, eax
cmovbe edx, eax
mov eax, ebp
mov edi, edx
sub eax, edx
add eax, esi
mov edx, dword [esp + 0x48]
cmp esi, edx
ja 0x49153b
cmp eax, edx
jb 0x49153b
sub ebp, edx
add esi, ebp
mov eax, esi
not eax
mov edx, dword [esp + 0x2c]
add eax, edx
cmp eax, 3
cmovb esi, edx
mov dword [esp + 0x64], 0
mov dword [esp + 0x28], 2
mov ebp, esi
jmp 0x49155c
mov edx, edi
not edx
add edx, dword [esp + 0x2c]
mov dword [esp + 0x64], 0
mov dword [esp + 0x28], 2
cmp edx, 3
jae 0x491569
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
jmp 0x491208
mov ebp, edi
mov dword [esp + 0xc], ecx
mov edx, dword [esp + 0x48]
cmp eax, edx
cmovae eax, edx
cmp ebx, eax
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x24]
jae 0x4915a7
mov edx, dword [esp + 0x24]
sub edx, ebp
cmp edx, 0xffff
ja 0x4922b9
mov edx, dword [esp + 0x44]
lea ecx, [edx + ebp]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x24]
mov ebx, eax
movzx eax, bp
mov esi, dword [esp + 0x18]
movzx eax, word [esi + eax*2 + 0x20000]
sub ebp, eax
mov esi, ecx
mov ecx, dword [esp + 0xc]
jae 0x491208
jmp 0x4922b9
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
mov edx, ecx
cmp eax, dword [esp]
jae 0x4915e4
movzx ecx, byte [ebx]
xor ebx, ebx
cmp cl, byte [eax]
sete bl
add eax, ebx
mov ecx, dword [esp + 0x24]
mov ebx, esi
sub eax, dword [esp + 0x4c]
mov esi, ecx
mov ecx, edx
lea edx, [eax + 4]
cmp ebp, dword [esp + 0x50]
jb 0x490de9
jmp 0x4911d0
mov ebx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x50]
jae 0x49161e
movzx eax, byte [eax]
mov esi, edx
xor edx, edx
cmp al, byte [esi]
sete dl
add esi, edx
mov edx, esi
mov esi, dword [esp + 0x24]
sub edx, dword [esp + 0x4c]
add edx, 4
cmp edx, ebx
jg 0x4913d5
jmp 0x490e92
mov ebx, dword [esp + 0x1c]
cmp eax, dword [esp + 0x50]
jae 0x491659
movzx edx, byte [ebp]
mov byte [esp + 0x1c], dl
movzx edx, byte [esp + 0x1c]
cmp dl, byte [eax]
mov edx, 0
sete dl
add eax, edx
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 8]
mov edx, dword [esp + 0x74]
sub eax, dword [esp]
add edx, eax
cmp edx, ebx
jg 0x4913cf
jmp 0x490e92
mov ecx, dword [esp + 0x34]
add ecx, esi
test esi, esi
mov esi, dword [esp + 0x1c]
jg 0x4914c5
jmp 0x4914e4
mov eax, ecx
mov ecx, dword [esp + 0xc]
cmp eax, edx
jb 0x491165
jmp 0x491183
mov eax, dword [esp + 0x4c]
mov ecx, eax
mov edx, dword [esp + 0x50]
cmp eax, edx
jb 0x4910ba
jmp 0x491121
mov ebx, ecx
mov ecx, esi
cmp ebx, edi
jb 0x4912cf
jmp 0x4912f7
mov ebx, dword [esp + 0x1c]
jmp 0x491452
mov edx, ecx
cmp ecx, ebx
jb 0x49128e
jmp 0x4913ef
cmp ebp, edx
jle 0x490b60
mov dword [esp + 0xc4], ebp
mov dword [esp + 0xb4], edx
mov ecx, dword [esp + 0x20]
mov eax, ecx
sub eax, dword [esp + 0x60]
mov esi, dword [esp + 0x2c]
lea edx, [eax + esi]
cmp dword [esp + 0x84], edx
lea eax, [eax + esi - 0xffff]
cmova eax, dword [esp + 0x9c]
mov dword [esp + 0x64], eax
mov eax, dword [ecx]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x40014]
mov dword [esp + 0x1c], edx
cmp ecx, edx
jae 0x49179e
mov edx, dword [esp + 0x40]
sub edx, ecx
mov eax, ecx
test dl, 1
je 0x49178c
mov eax, dword [esp + 0x44]
imul eax, dword [eax + ecx], 0x9e3779b1
shr eax, 0x11
mov edx, ecx
mov ebx, dword [esp + 0x18]
sub edx, dword [ebx + eax*4]
cmp edx, 0xffff
mov esi, 0xffff
cmovae edx, esi
movzx esi, cx
mov word [ebx + esi*2 + 0x20000], dx
mov dword [ebx + eax*4], ecx
lea eax, [ecx + 1]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x7c]
add edx, esi
cmp edx, ecx
jne 0x492225
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov dword [ebx + 0x40014], eax
mov edx, dword [esp + 4]
movzx eax, dx
mov ecx, edx
shr ecx, 0x10
xor ecx, eax
movzx eax, dl
shr edx, 0x18
xor edx, eax
mov esi, dword [esp + 0x20]
imul eax, dword [esi], 0x9e3779b1
shr eax, 0x11
or edx, ecx
mov ebp, dword [ebx + eax*4]
sete byte [esp + 0xe8]
cmp ebp, dword [esp + 0x64]
jb 0x490b60
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0xa8]
lea ecx, [esi + 4]
mov dword [esp + 0x4c], ecx
lea ecx, [esi + 8]
mov dword [esp + 0x58], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x100], eax
mov ecx, eax
mov esi, dword [esp + 0xbc]
mov dword [esp + 0x6c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x68], 0
mov edx, dword [esp + 0x1c]
nop word cs:[eax + eax]
cmp byte [esp + 0x94], 0
mov dword [esp + 8], ebp
je 0x49185b
mov eax, edx
sub eax, ebp
cmp eax, 8
jb 0x4919a0
mov ebx, dword [esp + 0x2c]
sub ebx, ebp
jbe 0x491940
cmp ebp, dword [esp + 0x98]
ja 0x4919a0
mov dword [esp + 0x28], ecx
mov eax, ebp
sub eax, dword [esp + 0x9c]
add eax, dword [esp + 0x34]
mov ecx, dword [esp + 4]
cmp dword [eax], ecx
jne 0x491bd7
mov dword [esp + 0x24], esi
add ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x50]
cmp ebx, edx
mov dword [esp], ebx
mov ebp, ebx
cmova ebp, edx
lea ebx, [eax + 4]
lea edx, [ebp - 3]
mov ecx, dword [esp + 0x4c]
cmp edx, ecx
mov dword [esp + 0x74], ebp
jbe 0x492140
mov esi, dword [ecx]
xor esi, dword [ebx]
je 0x491c1e
tzcnt eax, esi
shr eax, 3
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
lea ebx, [eax + 4]
mov ebp, dword [esp]
cmp ebp, dword [esp + 0x50]
jae 0x491ca2
mov edx, dword [esp + 0x20]
add eax, edx
add eax, 4
mov edx, dword [esp + 0x74]
cmp eax, edx
jne 0x491d2a
mov ebp, dword [esp + 0x60]
mov eax, edx
cmp edi, edx
jbe 0x491da7
mov eax, dword [edx]
mov ebp, dword [esp + 0x60]
xor eax, dword [ebp]
je 0x491d9d
tzcnt eax, eax
shr eax, 3
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 8]
add ebx, eax
cmp ebx, ecx
jg 0x491e4b
jmp 0x4919a2
mov eax, dword [esp + 0x44]
add ebp, eax
mov eax, dword [esp + 0x20]
movzx eax, word [eax + ecx - 1]
cmp ax, word [ecx + ebp - 1]
jne 0x4919a0
mov eax, dword [esp + 4]
cmp dword [ebp], eax
jne 0x4919a0
mov dword [esp + 0x28], ecx
lea eax, [ebp + 4]
mov ecx, dword [esp + 0x4c]
cmp edi, ecx
jbe 0x49216a
mov edx, dword [ecx]
xor edx, dword [eax]
je 0x491d3f
tzcnt ebx, edx
shr ebx, 3
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
add ebx, 4
cmp ebx, ecx
jg 0x491e51
jmp 0x4919a2
xor ebx, ebx
cmp ebx, ecx
jne 0x491a2f
mov ebp, dword [esp + 8]
lea eax, [ecx + ebp]
cmp eax, edx
ja 0x491a33
cmp ebx, 4
jl 0x491a33
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x74], ebx
lea eax, [ebx - 3]
mov dword [esp], eax
xor ebp, ebp
mov edi, 0x10
mov eax, 1
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
mov ebx, eax
mov eax, dword [esp + 8]
add eax, ebp
movzx eax, ax
movzx eax, word [ecx + eax*2 + 0x20000]
lea esi, [edi + 1]
sar edi, 4
cmp ebx, eax
cmova eax, ebx
mov ebx, 0x10
cmovb esi, ebx
cmovb edx, ebp
add ebp, edi
mov edi, esi
cmp ebp, dword [esp]
jl 0x4919e0
mov dword [esp + 0xc], edx
cmp eax, 1
mov edi, dword [esp + 0x10]
ja 0x491bb0
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 8]
movzx eax, bp
mov ebx, dword [esp + 0x18]
cmp word [ebx + eax*2 + 0x20000], 1
jne 0x491b30
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x491cc3
cmp dword [esp + 0x6c], 0
je 0x491b39
cmp dword [esp + 0x6c], 2
jne 0x491cc3
lea ebx, [ebp - 1]
cmp ebx, dword [esp + 0x64]
jb 0x491cbf
mov eax, dword [esp + 0x2c]
sub eax, ebp
mov dword [esp + 0x6c], 2
cmp eax, 3
jb 0x491cb7
mov edx, ebx
cmp edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x44]
cmovb edi, dword [esp + 0xe0]
mov eax, dword [esp + 4]
cmp dword [edi + edx], eax
jne 0x491cb3
mov ebp, edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], esi
lea eax, [edi + edx]
cmp edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x50]
cmovb ebx, dword [esp + 0x38]
mov dword [esp], eax
add eax, 4
lea edx, [ebx - 3]
mov ecx, eax
cmp edx, eax
jbe 0x491b06
mov ecx, dword [esp + 8]
lea esi, [ecx + edi]
add esi, 3
mov ecx, eax
nop word cs:[eax + eax]
mov edi, dword [ecx]
xor edi, dword [esp + 4]
jne 0x491cf3
add ecx, 4
add esi, 4
cmp ecx, edx
jb 0x491af0
cmp ecx, ebx
jae 0x491cfc
mov esi, ebx
sub esi, ecx
mov edx, dword [esp + 4]
cmp byte [ecx], dl
jne 0x491cfc
inc ecx
shr edx, 8
dec esi
jne 0x491b16
mov ecx, ebx
jmp 0x491cfc
mov eax, dword [esp + 0xc]
jmp 0x491cc3
mov dword [esp + 0x6c], 1
cmp byte [esp + 0xe8], 0
je 0x491cc3
mov ebp, ecx
mov edx, dword [esp + 0xcc]
mov ecx, dword [esp + 0x4c]
mov eax, ecx
cmp edi, ecx
mov ecx, edx
jbe 0x492153
nop dword [eax + eax]
mov edx, dword [eax]
xor edx, dword [esp + 4]
jne 0x491be2
add eax, 4
add ecx, 4
cmp eax, edi
jb 0x491b70
mov edx, dword [esp + 0x50]
cmp eax, edx
jae 0x491beb
sub edx, ecx
lea edi, [eax + edx]
mov ebx, dword [esp + 4]
mov ecx, ebp
mov ebp, dword [esp + 8]
cmp byte [eax], bl
jne 0x491ba6
inc eax
shr ebx, 8
dec edx
jne 0x491b99
mov eax, edi
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
jmp 0x491bf7
mov ebp, dword [esp + 8]
cmp eax, ebp
mov ecx, 0
cmova eax, ecx
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
ja 0x4922df
sub ebp, eax
mov ecx, dword [esp + 0x74]
jmp 0x491cd6
xor ebx, ebx
mov ecx, dword [esp + 0x28]
jmp 0x4919a2
tzcnt eax, edx
shr eax, 3
add ecx, eax
mov edx, dword [esp + 0x1c]
mov eax, ecx
mov ecx, ebp
mov ebp, dword [esp + 8]
sub eax, dword [esp + 0x4c]
add eax, 4
mov dword [esp + 0x48], eax
mov dword [esp + 0x6c], 2
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x6c], 2
je 0x491a6b
jmp 0x491cc3
add eax, 8
mov ebx, eax
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x28]
cmp eax, edx
jae 0x491c53
mov esi, dword [esp + 0x80]
lea edi, [esi + eax]
nop dword [eax]
mov esi, dword [eax]
xor esi, dword [ebx]
jne 0x491c7d
add eax, 4
add ebx, 4
add edi, 4
cmp eax, edx
jb 0x491c40
lea edx, [ebp - 1]
cmp eax, edx
jae 0x492088
movzx edx, word [ebx]
cmp dx, word [eax]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
jne 0x492090
add eax, 2
add ebx, 2
jmp 0x492090
tzcnt eax, esi
shr eax, 3
add eax, edi
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
lea ebx, [eax + 4]
mov ebp, dword [esp]
cmp ebp, dword [esp + 0x50]
jb 0x4918ea
mov ebp, dword [esp + 8]
cmp ebx, ecx
jle 0x4919a2
jmp 0x491e4b
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x1c]
add eax, ebp
movzx eax, ax
mov ebx, dword [esp + 0x18]
movzx eax, word [ebx + eax*2 + 0x20000]
sub ebp, eax
cmp ebp, dword [esp + 0x64]
jb 0x4922e3
lea eax, [esi - 1]
cmp esi, 1
mov esi, eax
jg 0x491840
jmp 0x4922e3
tzcnt ecx, edi
shr ecx, 3
add ecx, esi
sub ecx, eax
lea edi, [ecx + 4]
cmp ebp, dword [esp + 0x2c]
jae 0x491e5c
mov eax, dword [esp]
add eax, edi
cmp eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x50]
je 0x491e65
mov eax, dword [esp + 0x34]
mov esi, dword [esp]
jmp 0x491ec7
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 8]
cmp ebx, ecx
jg 0x491e4b
jmp 0x4919a2
lea eax, [ebp + 8]
mov ebx, dword [esp + 0x58]
mov ecx, esi
cmp ebx, edi
jae 0x491d77
mov edx, dword [esp + 0x80]
add edx, ebx
nop word cs:[eax + eax]
mov esi, dword [ebx]
xor esi, dword [eax]
jne 0x491e0d
add ebx, 4
add eax, 4
add edx, 4
cmp ebx, edi
jb 0x491d60
cmp ebx, dword [esp + 0xe4]
jae 0x4920bd
movzx edx, word [eax]
cmp dx, word [ebx]
mov esi, ecx
jne 0x4920bf
add ebx, 2
add eax, 2
jmp 0x4920bf
lea eax, [edx + 4]
mov ebp, dword [esp + 0xac]
cmp eax, edi
jae 0x491de4
mov esi, dword [esp + 0xd4]
sub esi, dword [esp + 8]
mov edx, dword [esp + 0xf0]
cmp edx, esi
cmovb esi, edx
mov edx, eax
sub edx, esi
nop word cs:[eax + eax]
mov esi, dword [eax]
xor esi, dword [ebp]
jne 0x491e2c
add eax, 4
add ebp, 4
add edx, 4
cmp eax, edi
jb 0x491dd0
cmp eax, dword [esp + 0xe4]
jae 0x4920ed
movzx edx, word [ebp]
cmp dx, word [eax]
mov esi, dword [esp + 0x24]
jne 0x4920f1
add eax, 2
add ebp, 2
jmp 0x4920f1
tzcnt ebx, esi
shr ebx, 3
add ebx, edx
mov edx, dword [esp + 0x1c]
mov esi, ecx
mov ecx, dword [esp + 0x28]
add ebx, 4
cmp ebx, ecx
jg 0x491e51
jmp 0x4919a2
tzcnt eax, esi
shr eax, 3
add eax, edx
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 8]
add ebx, eax
cmp ebx, ecx
jle 0x4919a2
mov eax, dword [esp + 0x44]
add ebp, eax
mov dword [esp + 0x68], ebp
mov ecx, ebx
jmp 0x4919a2
mov eax, dword [esp + 0x60]
mov esi, dword [esp]
jmp 0x491ec7
shl ecx, 3
mov eax, dword [esp + 4]
rol eax, cl
mov ecx, dword [esp + 0x60]
cmp dword [esp + 0x10], ecx
jbe 0x492184
mov edx, ecx
nop
mov esi, dword [ecx]
xor esi, eax
jne 0x491eb1
add ecx, 4
add edx, 4
cmp ecx, dword [esp + 0x10]
jb 0x491e80
cmp ecx, ebx
jae 0x491eba
mov esi, ebx
sub esi, edx
lea edx, [ecx + esi]
cmp byte [ecx], al
jne 0x491eaa
inc ecx
shr eax, 8
dec esi
jne 0x491e9d
mov ecx, edx
mov esi, dword [esp]
mov edx, ecx
jmp 0x491ebd
tzcnt eax, esi
shr eax, 3
add edx, eax
mov esi, dword [esp]
sub edi, dword [esp + 0x60]
add edi, edx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 4]
mov dword [esp + 0x90], ecx
lea edx, [eax + 4]
nop word cs:[eax + eax]
mov ecx, esi
cmp esi, edx
jb 0x491ef2
lea esi, [ecx - 4]
mov ebx, dword [esp + 4]
cmp dword [ecx - 4], ebx
je 0x491ee0
cmp ecx, eax
jbe 0x49217b
lea edx, [esp + 0x93]
mov esi, dword [esp + 0x24]
nop word cs:[eax + eax]
movzx ebx, byte [ecx - 1]
cmp bl, byte [edx]
jne 0x491f20
dec ecx
dec edx
cmp ecx, eax
ja 0x491f10
mov ecx, eax
mov edx, dword [esp]
mov eax, edx
sub eax, ecx
cmp ebp, dword [esp + 0x2c]
jb 0x491faa
sub edx, eax
cmp edx, dword [esp + 0x60]
jne 0x491faa
mov ecx, dword [esp + 0x2c]
cmp ecx, dword [esp + 0x9c]
jbe 0x491faa
mov ecx, eax
neg ecx
shl ecx, 3
mov edx, dword [esp + 4]
rol edx, cl
mov dword [esp + 0x90], edx
mov esi, dword [esp + 0xc0]
nop dword [eax]
cmp esi, 4
jl 0x492129
lea ecx, [esi - 4]
mov ebx, dword [esp + 0x34]
cmp dword [ebx + esi - 4], edx
mov esi, ecx
je 0x491f60
mov edx, dword [esp + 0x34]
add ecx, edx
add ecx, 4
mov esi, dword [esp + 0x24]
lea edx, [esp + 0x93]
nop dword [eax]
movzx ebx, byte [ecx - 1]
cmp bl, byte [edx]
jne 0x491fa4
dec ecx
dec edx
cmp ecx, dword [esp + 0x34]
ja 0x491f90
mov ecx, dword [esp + 0x34]
add eax, dword [esp + 0x38]
sub eax, ecx
mov ecx, ebp
sub ecx, eax
mov eax, dword [esp + 0x64]
cmp ecx, eax
cmovbe ecx, eax
mov eax, ebp
mov edx, ecx
sub eax, ecx
add eax, edi
mov ecx, dword [esp + 0x48]
cmp edi, ecx
ja 0x492002
cmp eax, ecx
jb 0x492002
sub ebp, ecx
add edi, ebp
mov eax, edi
not eax
mov ecx, dword [esp + 0x2c]
add eax, ecx
cmp eax, 3
cmovb edi, ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x6c], 2
mov ebp, edi
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
jmp 0x491cd6
mov ebp, edx
not edx
add edx, dword [esp + 0x2c]
mov dword [esp + 0xc], 0
mov dword [esp + 0x6c], 2
cmp edx, 3
mov ecx, dword [esp + 0x28]
jae 0x492034
mov ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
jmp 0x491cd6
mov edx, dword [esp + 0x48]
cmp eax, edx
cmovae eax, edx
cmp ecx, eax
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
jae 0x49206c
mov edx, dword [esp + 0x1c]
sub edx, ebp
cmp edx, 0xffff
ja 0x4922e3
mov edx, dword [esp + 0x44]
lea ecx, [edx + ebp]
mov dword [esp + 0x68], ecx
mov edx, dword [esp + 0x1c]
mov ecx, eax
movzx eax, bp
mov ebx, dword [esp + 0x18]
movzx eax, word [ebx + eax*2 + 0x20000]
sub ebp, eax
jae 0x491cd6
jmp 0x4922e3
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
cmp eax, ebp
jae 0x4920a0
movzx edx, byte [ebx]
xor ebx, ebx
cmp dl, byte [eax]
sete bl
add eax, ebx
mov edx, dword [esp + 0x1c]
sub eax, dword [esp + 0x4c]
lea ebx, [eax + 4]
mov ebp, dword [esp]
cmp ebp, dword [esp + 0x50]
jb 0x4918ea
jmp 0x491ca2
mov esi, ecx
mov ecx, dword [esp + 0x28]
cmp ebx, dword [esp + 0x50]
jae 0x4920d5
movzx eax, byte [eax]
xor edx, edx
cmp al, byte [ebx]
sete dl
add ebx, edx
mov edx, dword [esp + 0x1c]
sub ebx, dword [esp + 0x4c]
add ebx, 4
cmp ebx, ecx
jg 0x491e51
jmp 0x4919a2
mov esi, dword [esp + 0x24]
cmp eax, dword [esp + 0x50]
jae 0x49210e
movzx edx, byte [ebp]
mov byte [esp], dl
movzx edx, byte [esp]
cmp dl, byte [eax]
mov edx, 0
sete dl
add eax, edx
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 8]
sub eax, dword [esp + 0x74]
add ebx, eax
cmp ebx, ecx
jg 0x491e4b
jmp 0x4919a2
mov ecx, dword [esp + 0x34]
add ecx, esi
test esi, esi
mov esi, dword [esp + 0x24]
jg 0x491f85
jmp 0x491fa4
mov eax, ecx
mov ecx, dword [esp + 0x28]
cmp eax, edx
jb 0x491c2f
jmp 0x491c53
mov eax, dword [esp + 0x4c]
mov ecx, eax
mov edx, dword [esp + 0x50]
cmp eax, edx
jb 0x491b8a
jmp 0x491beb
mov ebx, ecx
mov ecx, esi
cmp ebx, edi
jb 0x491d4c
jmp 0x491d77
mov esi, dword [esp + 0x24]
jmp 0x491f20
mov edx, ecx
cmp ecx, ebx
jb 0x491e96
jmp 0x491eba
inc eax
jmp 0x4921c6
movzx esi, ax
mov edi, dword [esp + 0x18]
mov word [edi + esi*2 + 0x20000], dx
mov dword [edi + ecx*4], eax
lea ecx, [eax + 2]
inc eax
cmp eax, dword [esp + 0x40]
mov eax, ecx
mov edi, dword [esp + 0x10]
je 0x490cb4
lea ecx, [eax - 1]
mov edx, dword [esp + 0x44]
imul edx, dword [edx + eax - 1], 0x9e3779b1
shr edx, 0x11
mov esi, ecx
mov edi, dword [esp + 0x18]
sub esi, dword [edi + edx*4]
cmp esi, 0xffff
jb 0x4921ee
mov esi, 0xffff
movzx edi, cx
mov ebx, dword [esp + 0x18]
mov word [ebx + edi*2 + 0x20000], si
mov dword [ebx + edx*4], ecx
mov ecx, dword [esp + 0x44]
imul ecx, dword [ecx + eax], 0x9e3779b1
shr ecx, 0x11
mov edx, eax
sub edx, dword [ebx + ecx*4]
cmp edx, 0xffff
jb 0x4921a0
mov edx, 0xffff
jmp 0x4921a0
inc eax
jmp 0x492256
movzx esi, ax
mov edi, dword [esp + 0x18]
mov word [edi + esi*2 + 0x20000], dx
mov dword [edi + ecx*4], eax
lea ecx, [eax + 2]
inc eax
cmp eax, dword [esp + 0x40]
mov eax, ecx
mov edi, dword [esp + 0x10]
je 0x49179e
lea ecx, [eax - 1]
mov edx, dword [esp + 0x44]
imul edx, dword [edx + eax - 1], 0x9e3779b1
shr edx, 0x11
mov esi, ecx
mov edi, dword [esp + 0x18]
sub esi, dword [edi + edx*4]
cmp esi, 0xffff
jb 0x49227e
mov esi, 0xffff
movzx edi, cx
mov ebx, dword [esp + 0x18]
mov word [ebx + edi*2 + 0x20000], si
mov dword [ebx + edx*4], ecx
mov ecx, dword [esp + 0x44]
imul ecx, dword [ecx + eax], 0x9e3779b1
shr ecx, 0x11
mov edx, eax
sub edx, dword [ebx + ecx*4]
cmp edx, 0xffff
jb 0x492230
mov edx, 0xffff
jmp 0x492230
mov ebx, dword [esp + 0x74]
cmp ebx, 4
jl 0x490b60
lea eax, [ebx - 0x13]
cmp eax, 0x12
mov ecx, ebx
mov eax, 0x12
cmovb ecx, eax
cmp byte [esp + 0x94], 0
cmove ecx, ebx
jmp 0x492313
mov ecx, dword [esp + 0x74]
cmp ecx, dword [esp + 0x100]
jle 0x490b60
lea eax, [ecx - 0x13]
cmp eax, 0x12
mov edx, ecx
mov eax, 0x12
cmovb ecx, eax
cmp byte [esp + 0x94], 0
cmove ecx, edx
test ecx, ecx
je 0x490b60
mov esi, dword [esp + 0x20]
sub esi, dword [esp + 0x68]
cmp ecx, dword [esp + 0xec]
mov edi, 0x80808081
ja 0x4925d9
mov eax, dword [esp + 0xa8]
add eax, ecx
cmp eax, 0xfff
jg 0x4925d9
mov dword [esp + 0x20], esi
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0xd8]
mov esi, dword [eax + edx + 0xc]
lea eax, [esi - 0xf]
mul edi
shr edx, 7
lea ebp, [esi + 1]
cmp esi, 0xf
lea eax, [edx + esi + 1]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
cmovge esi, eax
mov eax, ebp
cmp ebp, 0xe
jle 0x49238a
mov ebx, dword [esp + 4]
lea eax, [ebx - 0xe]
mul edi
shr edx, 7
lea eax, [ebx + edx]
add eax, 2
mov ebx, dword [esp + 0xb4]
sub ebx, esi
add eax, ebx
cmp eax, dword [esp + 0xc4]
jge 0x4923cd
mov esi, dword [esp + 0x54]
mov edx, dword [esp + 0xc8]
lea edi, [esi + edx]
mov dword [esp], edi
mov edi, 0x80808081
mov dword [esi + edx + 8], 1
mov dword [esi + edx + 4], 0
mov dword [esi + edx + 0xc], ebp
mov edx, dword [esp]
mov dword [edx], eax
mov edx, dword [esp + 4]
lea ebp, [edx + 2]
mov eax, ebp
cmp edx, 0xd
jl 0x4923ed
mov esi, dword [esp + 4]
lea eax, [esi - 0xd]
mul edi
shr edx, 7
lea eax, [esi + edx]
add eax, 3
add eax, ebx
mov edx, dword [esp + 0xa8]
add edx, 2
shl edx, 4
mov esi, dword [esp + 0x54]
cmp eax, dword [esi + edx]
jge 0x492427
mov edi, dword [esp + 0x54]
lea esi, [edi + edx]
mov dword [edi + edx + 8], 1
mov dword [edi + edx + 4], 0
mov dword [edi + edx + 0xc], ebp
mov edi, 0x80808081
mov dword [esi], eax
mov edx, dword [esp + 4]
lea eax, [edx + 3]
mov ebp, eax
cmp edx, 0xc
jl 0x492447
mov esi, dword [esp + 4]
lea eax, [esi - 0xc]
mul edi
shr edx, 7
lea eax, [esi + edx]
add eax, 4
add eax, ebx
mov edi, dword [esp + 0xa8]
lea edx, [edi + 3]
shl edx, 4
mov ebx, dword [esp + 0x54]
cmp eax, dword [ebx + edx]
jge 0x492478
lea esi, [ebx + edx]
mov dword [ebx + edx + 8], 1
mov dword [ebx + edx + 4], 0
mov dword [ebx + edx + 0xc], ebp
mov dword [esi], eax
cmp ecx, 3
mov esi, dword [esp + 0x14]
jle 0x490ae8
mov eax, dword [esp + 4]
sub edi, eax
shl edi, 4
add edi, ebx
mov dword [esp + 0x6c], edi
mov edx, dword [esp + 8]
add edx, 3
cmp eax, 0xf
mov eax, dword [esp + 0xd8]
mov eax, dword [ebx + eax + 8]
mov dword [esp + 0xc], eax
cmovge ebp, edx
mov dword [esp + 0x64], ebp
lea eax, [ebp + 1]
mov dword [esp + 0x28], eax
neg ecx
mov ebx, 5
mov edi, dword [esp + 0xb0]
jmp 0x49250c
mov dword [esp], esi
mov esi, dword [esp + 0x14]
cmp esi, eax
cmovge eax, esi
lea ebp, [ecx + ebx]
cmp ebp, 1
cmove esi, eax
mov eax, dword [esp + 8]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x20]
mov dword [edi + 4], eax
mov eax, dword [esp]
mov dword [edi + 0xc], eax
mov dword [edi], edx
lea eax, [ecx + ebx]
inc eax
inc ebx
add edi, 0x10
cmp eax, 2
je 0x490ae8
lea ebp, [ebx - 1]
cmp dword [esp + 0xc], 1
mov dword [esp + 0x14], esi
mov dword [esp + 8], ebp
jne 0x492560
xor esi, esi
mov eax, dword [esp + 4]
cmp dword [esp + 0xa8], eax
jle 0x492533
mov eax, dword [esp + 0x6c]
mov esi, dword [eax]
mov edx, dword [esp + 0x64]
cmp ebp, 0x13
jb 0x49254d
lea eax, [ebx - 0x14]
mov edx, 0x80808081
mul edx
shr edx, 7
add edx, dword [esp + 0x28]
add edx, esi
mov esi, dword [esp + 4]
jmp 0x492583
mov edx, 3
cmp ebp, 0x13
jb 0x49257a
lea eax, [ebx - 0x14]
mov edx, 0x80808081
mul edx
shr edx, 7
add edx, 4
add edx, dword [esp + 0xb4]
xor esi, esi
mov eax, dword [esp + 0x7c]
add eax, ebx
mov ebp, dword [esp + 0x14]
add ebp, 3
cmp eax, ebp
jg 0x4924d0
mov ebp, dword [edi]
add ebp, dword [esp + 0xa0]
cmp edx, ebp
jle 0x4924d0
mov esi, dword [esp + 0x14]
jmp 0x4924fb
mov edx, dword [esp + 0x14]
mov eax, edx
shl eax, 4
mov ecx, dword [esp + 0x54]
mov esi, dword [ecx + eax + 4]
mov ecx, dword [ecx + eax + 8]
mov eax, edx
sub eax, ecx
mov dword [esp + 0xa8], eax
mov dword [esp + 0x88], edx
mov edi, dword [esp + 0x54]
mov ebp, dword [esp + 0xa8]
mov edx, esi
nop word cs:[eax + eax]
mov eax, ebp
shl eax, 4
mov ebx, dword [edi + eax + 4]
mov esi, dword [edi + eax + 8]
mov dword [edi + eax + 8], ecx
mov dword [edi + eax + 4], edx
mov ecx, esi
mov edx, ebx
sub ebp, esi
jge 0x4925f0
mov eax, dword [esp + 0x88]
test eax, eax
jle 0x49288c
xor edx, edx
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x18]
jmp 0x49263e
mov ecx, dword [esp + 0x3c]
inc ecx
inc edx
cmp edx, eax
jge 0x48fb51
mov dword [esp + 0x3c], ecx
mov ecx, edx
shl ecx, 4
mov esi, dword [esp + 0x54]
mov ebp, dword [esi + ecx + 8]
cmp ebp, 1
je 0x492630
mov edi, ebp
mov dword [esp + 4], edx
mov ebp, dword [esp + 0x3c]
sub ebp, dword [esp + 0x5c]
mov eax, ebp
mov edx, 0x80808081
mul edx
mov eax, dword [esi + ecx + 4]
mov dword [esp + 8], eax
cmp dword [esp + 0x128], 0
mov ecx, dword [esp + 0x78]
je 0x49269a
shr edx, 7
lea eax, [ecx + edx]
inc eax
add eax, ebp
add eax, 8
cmp eax, dword [esp + 0xb8]
ja 0x492aae
lea esi, [ecx + 1]
cmp ebp, 0xf
mov dword [esp], edi
mov edx, ebp
mov dword [esp + 0x30], ebp
jb 0x492700
lea eax, [edx - 0xf]
mov byte [ecx], 0xf0
cmp eax, 0xff
jb 0x4926f7
mov ebp, ecx
lea eax, [edx - 0x10e]
mov ecx, 0x80808081
mul ecx
mov edi, edx
shr edi, 7
lea eax, [edi + 1]
push eax
push 0xff
push esi
call sub.msvcrt.dll_memset
mov edx, dword [esp + 0x3c]
add esp, 0xc
mov eax, edi
shl eax, 8
lea esi, [edi + ebp]
add esi, 2
sub edi, eax
lea eax, [edx + edi]
add eax, 0xfffffef2
mov ecx, dword [esp + 0x3c]
mov byte [esi], al
inc esi
jmp 0x49270b
mov eax, edx
shl al, 4
mov byte [ecx], al
mov ecx, dword [esp + 0x3c]
lea eax, [esi + ecx]
mov edi, dword [esp + 0x5c]
sub eax, edi
lea ecx, [esi + 8]
cmp eax, ecx
cmovbe eax, ecx
lea ebp, [esi + edx]
mov edx, esi
not edx
add edx, eax
mov eax, edi
mov ecx, esi
cmp edx, 0x18
jb 0x492790
mov edi, esi
mov eax, dword [esp + 0x5c]
sub edi, eax
mov ecx, esi
cmp edi, 0x20
jb 0x492790
shr edx, 3
inc edx
mov dword [esp + 0xc], edx
mov edi, edx
and edi, 0xfffffffc
mov edx, dword [esp + 0x5c]
lea eax, [edx + edi*8]
lea ecx, [esi + edi*8]
xor ebx, ebx
nop word cs:[eax + eax]
movups xmm0, xmmword [edx + ebx*8]
movups xmm1, xmmword [edx + ebx*8 + 0x10]
movups xmmword [esi + ebx*8], xmm0
movups xmmword [esi + ebx*8 + 0x10], xmm1
add ebx, 4
cmp edi, ebx
jne 0x492760
cmp dword [esp + 0xc], edi
mov ebx, dword [esp + 0x18]
je 0x4927a2
nop word cs:[eax + eax]
movsd xmm0, qword [eax]
movsd qword [ecx], xmm0
add ecx, 8
add eax, 8
cmp ecx, ebp
jb 0x492790
mov eax, dword [esp]
lea ecx, [eax - 4]
mov eax, ecx
mov edx, 0x80808081
mul edx
mov eax, dword [esp + 8]
mov word [ebp], ax
cmp dword [esp + 0x128], 0
je 0x4927d9
shr edx, 7
lea eax, [edx + ebp]
add eax, 8
cmp eax, dword [esp + 0xb8]
ja 0x492ac4
add ebp, 2
mov edx, dword [esp + 0x78]
movzx eax, byte [edx]
cmp ecx, 0xf
jb 0x49285d
add al, 0xf
mov byte [edx], al
mov ecx, dword [esp]
lea eax, [ecx - 0x13]
cmp eax, 0x1fe
jb 0x49283e
lea eax, [ecx - 0x211]
mov ecx, 0x80808081
mul ecx
mov edi, edx
shr edi, 8
lea eax, [edi*2 + 2]
push eax
push 0xff
push ebp
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [esp + 0x30]
lea eax, [eax + edi*2]
lea ebp, [esi + eax]
add ebp, 4
imul eax, edi, 0xfffffe02
mov ecx, dword [esp]
add eax, ecx
add eax, 0xfffffdef
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 4]
cmp eax, 0xff
jb 0x492857
add eax, 0xffffff01
mov byte [ebp], 0xff
inc ebp
mov byte [ebp], al
inc ebp
jmp 0x492869
add al, cl
mov byte [edx], al
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 4]
mov eax, dword [esp]
add edx, eax
add ecx, eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x78], ebp
mov eax, dword [esp + 0x88]
cmp edx, eax
jl 0x49263e
jmp 0x48fb51
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x18]
jmp 0x48fb51
mov edx, dword [esp + 0xb0]
mov ebp, dword [esp + 0x70]
xor ecx, ecx
mov esi, dword [esp + 0x128]
cmp esi, 2
sete bl
mov edi, dword [esp + 0xe8]
mov dword [esp + 0x4c], edx
sub edi, edx
lea eax, [edi + 0xf0]
mov edx, 0x80808081
mul edx
test esi, esi
je 0x492919
shr edx, 7
add edx, edi
mov cl, bl
lea eax, [ecx + ecx*4]
mov esi, dword [esp + 0xac]
add esi, eax
mov eax, ebp
lea eax, [edx + ebp]
inc eax
cmp eax, esi
mov ebx, dword [esp + 0x18]
jbe 0x49291d
xor edi, edi
cmp dword [esp + 0x128], 1
je 0x492a9a
mov ecx, esi
mov eax, ebp
not eax
lea edi, [eax + esi]
add eax, esi
add eax, 0xf1
shr eax, 8
sub edi, eax
jmp 0x49291d
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x4c]
add eax, edi
cmp edi, 0xf
mov ecx, edi
mov dword [esp + 8], eax
jb 0x492985
lea eax, [ecx - 0xf]
mov byte [ebp], 0xf0
mov esi, ecx
lea ecx, [ebp + 1]
cmp eax, 0xff
jb 0x492a5c
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 + ebp]
add ecx, 2
sub edi, eax
mov edx, esi
lea eax, [esi + edi]
add eax, 0xfffffef2
jmp 0x492a5e
mov eax, ecx
shl al, 4
mov esi, ebp
mov byte [ebp], al
mov ebp, dword [esp + 0x4c]
jmp 0x492a68
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x5c]
lea esi, [eax + edi]
cmp edi, 0xf
mov ecx, edi
jb 0x492a11
lea eax, [ecx - 0xf]
mov ebp, dword [esp + 0x78]
mov byte [ebp], 0xf0
mov edx, ecx
lea ecx, [ebp + 1]
cmp eax, 0xff
jb 0x492a09
lea eax, [edx - 0x10e]
mov dword [esp + 0xf4], edx
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 + ebp]
add ecx, 2
sub edi, eax
mov eax, dword [esp + 0xf4]
mov edx, eax
add eax, edi
add eax, 0xfffffef2
mov byte [ecx], al
mov ebp, ecx
mov ecx, edx
jmp 0x492a1d
mov eax, ecx
shl al, 4
mov ebp, dword [esp + 0x78]
mov byte [ebp], al
lea eax, [ebp + 1]
push ecx
push dword [esp + 0x60]
push eax
mov edi, ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
add edi, ebp
inc edi
sub esi, dword [esp + 0xdc]
mov eax, dword [esp + 0x11c]
mov dword [eax], esi
sub edi, dword [esp + 0x118]
push dword [esp + 0x54]
call sub.msvcrt.dll_free
add esp, 4
test edi, edi
jg 0x492aa1
jmp 0x492a9a
mov edx, esi
mov ebp, dword [esp + 0x4c]
mov byte [ecx], al
mov esi, ecx
mov ecx, edx
lea eax, [esi + 1]
push ecx
push ebp
push eax
mov edi, ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
add edi, esi
inc edi
mov ecx, dword [esp + 8]
sub ecx, dword [esp + 0xdc]
mov eax, dword [esp + 0x11c]
mov dword [eax], ecx
sub edi, dword [esp + 0x118]
test edi, edi
jg 0x492aa1
mov byte [ebx + 0x4001b], 1
mov eax, edi
add esp, 0x104
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x3c]
mov ebp, edi
xor edi, edi
cmp eax, 2
jne 0x492a4a
jmp 0x492add
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x3c]
mov ebp, dword [esp]
xor edi, edi
cmp eax, 2
jne 0x492a4a
mov dword [esp + 0x3c], ecx
mov esi, ecx
mov ebx, dword [esp + 0x5c]
sub esi, ebx
lea eax, [esi + 0xf0]
mov ecx, 0x80808081
mul ecx
shr edx, 7
mov dword [esp], esi
add edx, esi
mov esi, dword [esp + 0xa4]
lea ecx, [esi - 8]
mov eax, dword [esp + 0x78]
add eax, edx
inc eax
cmp eax, ecx
ja 0x48cbd9
sub ecx, eax
mov edx, ecx
shl edx, 8
sub edx, ecx
add edx, 0x12
cmp ebp, edx
cmovb edx, ebp
add eax, 2
not eax
add eax, esi
mov dword [esp + 4], edx
add eax, edx
cmp eax, 0xc
jl 0x48cbd9
mov ecx, dword [esp + 0x78]
lea esi, [ecx + 1]
mov edx, dword [esp]
cmp edx, 0xf
jb 0x492bcb
lea eax, [edx - 0xf]
mov byte [ecx], 0xf0
cmp eax, 0xff
jb 0x492b9b
lea eax, [edx - 0x10e]
mov ecx, 0x80808081
mul ecx
mov edi, edx
shr edi, 7
lea eax, [edi + 1]
push eax
push 0xff
push esi
call sub.msvcrt.dll_memset
mov edx, dword [esp + 0xc]
add esp, 0xc
mov eax, edi
shl eax, 8
mov ecx, dword [esp + 0x78]
lea esi, [edi + ecx]
add esi, 2
sub edi, eax
lea eax, [edx + edi]
add eax, 0xfffffef2
mov byte [esi], al
inc esi
jmp 0x492bd2
mov eax, dword [esp + 0x128]
jmp 0x492acf
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x3c]
xor edi, edi
cmp eax, 2
jne 0x492a4a
jmp 0x492add
mov eax, edx
shl al, 4
mov byte [ecx], al
lea ecx, [esi + edx]
mov eax, dword [esp + 0x3c]
add eax, esi
sub eax, ebx
lea edx, [esi + 8]
cmp eax, edx
cmovbe eax, edx
mov edi, esi
not edi
add edi, eax
cmp edi, 0x18
jb 0x492c30
mov eax, esi
sub eax, ebx
cmp eax, 0x20
jb 0x492c30
shr edi, 3
inc edi
mov dword [esp + 0x30], edi
and edi, 0xfffffffc
lea eax, [ebx + edi*8]
lea edx, [esi + edi*8]
mov ebp, ebx
xor ebx, ebx
movups xmm0, xmmword [ebp + ebx*8]
movups xmm1, xmmword [ebp + ebx*8 + 0x10]
movups xmmword [esi + ebx*8], xmm0
movups xmmword [esi + ebx*8 + 0x10], xmm1
add ebx, 4
cmp edi, ebx
jne 0x492c0e
cmp dword [esp + 0x30], edi
jne 0x492c34
jmp 0x492c46
mov eax, ebx
mov edx, esi
movsd xmm0, qword [eax]
movsd qword [edx], xmm0
add edx, 8
add eax, 8
cmp edx, ecx
jb 0x492c34
mov eax, dword [esp + 8]
mov word [ecx], ax
add ecx, 2
mov ebx, dword [esp + 4]
lea edx, [ebx - 4]
mov edi, dword [esp + 0x78]
movzx eax, byte [edi]
cmp edx, 0xf
jb 0x492cc7
add al, 0xf
mov byte [edi], al
lea eax, [ebx - 0x13]
cmp eax, 0x1fe
jb 0x492cb2
lea eax, [ebx - 0x211]
mov edx, 0x80808081
mul edx
mov edi, edx
shr edi, 8
lea eax, [edi*2 + 2]
push eax
push 0xff
push ecx
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [esp]
lea eax, [eax + edi*2]
lea ecx, [esi + eax]
add ecx, 4
imul eax, edi, 0xfffffe02
add eax, ebx
add eax, 0xfffffdef
cmp eax, 0xff
jb 0x492cc2
add eax, 0xffffff01
mov byte [ecx], 0xff
inc ecx
mov byte [ecx], al
inc ecx
jmp 0x492ccb
add al, dl
mov byte [edi], al
mov eax, dword [esp + 0x3c]
add eax, ebx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x78], ecx
jmp 0x48cbd9
mov eax, dword [esp + 0x28]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x4c], eax
mov ecx, edi
mov dword [esp], esi
jmp 0x492d19
mov eax, dword [esp + 0x28]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov eax, dword [esp + 0x128]
mov ebp, dword [esp + 0xa4]
mov edx, dword [esp + 0x8c]
jmp 0x492e35
mov eax, dword [esp + 0x58]
mov dword [esp + 0x4c], eax
mov dword [esp], esi
mov eax, dword [esp + 0x128]
jmp 0x492dfd
mov eax, dword [esp + 0x58]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
jmp 0x492def
mov eax, dword [esp + 0x38]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0xa0]
mov dword [esp], esi
mov eax, dword [esp + 0x128]
jmp 0x492e35
mov eax, dword [esp + 0x38]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0x30]
mov dword [esp], eax
mov eax, dword [esp + 0x128]
jmp 0x492e2e
mov eax, dword [esp + 0x58]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov eax, dword [esp + 0x128]
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x68]
jmp 0x492e2e
mov eax, dword [esp + 0x58]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x128]
mov ebp, dword [esp + 0xa4]
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x68]
jmp 0x492e35
mov eax, dword [esp + 0x58]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov eax, dword [esp + 0x128]
mov edx, dword [esp + 0x8c]
mov ebp, dword [esp + 0xa4]
xor edi, edi
cmp eax, 2
jne 0x492a9a
mov esi, ebp
mov ebp, ecx
mov dword [esp + 0x8c], edx
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
sub ebx, edi
lea eax, [ebx + 0xf0]
mov ecx, 0x80808081
mul ecx
shr edx, 7
mov dword [esp + 8], ebx
add edx, ebx
lea ecx, [esi - 8]
mov eax, dword [esp]
add eax, edx
inc eax
cmp eax, ecx
ja 0x492f05
sub ecx, eax
mov edx, ecx
shl edx, 8
sub edx, ecx
add edx, 0x12
cmp ebp, edx
cmovb edx, ebp
add eax, 2
not eax
add eax, esi
mov dword [esp + 4], edx
add eax, edx
cmp eax, 0xc
jl 0x492f05
mov ecx, dword [esp]
lea ebp, [ecx + 1]
mov edx, dword [esp + 8]
cmp edx, 0xf
jb 0x492f0f
lea eax, [edx - 0xf]
mov byte [ecx], 0xf0
cmp eax, 0xff
jb 0x492efb
lea eax, [edx - 0x10e]
mov ecx, 0x80808081
mul ecx
mov edi, edx
shr edi, 7
lea eax, [edi + 1]
push eax
push 0xff
push ebp
call sub.msvcrt.dll_memset
mov edx, dword [esp + 0x14]
add esp, 0xc
mov eax, edi
shl eax, 8
mov ecx, dword [esp]
lea ebp, [edi + ecx]
add ebp, 2
sub edi, eax
lea eax, [edx + edi]
add eax, 0xfffffef2
mov byte [ebp], al
inc ebp
mov edi, dword [esp + 0x4c]
jmp 0x492f16
mov edx, edi
mov ebp, dword [esp]
jmp 0x4928a4
mov eax, edx
shl al, 4
mov byte [ecx], al
mov ebx, dword [esp + 0x48]
lea ecx, [edx + ebp]
lea eax, [ebx + ebp]
sub eax, edi
lea edx, [ebp + 8]
cmp eax, edx
cmovbe eax, edx
mov esi, ebp
not esi
add esi, eax
cmp esi, 0x18
jb 0x492f7d
mov eax, ebp
sub eax, edi
cmp eax, 0x20
jb 0x492f83
shr esi, 3
inc esi
mov dword [esp + 0x30], esi
and esi, 0xfffffffc
lea eax, [edi + esi*8]
lea edx, [esi*8]
add edx, ebp
xor ebx, ebx
movups xmm0, xmmword [edi + ebx*8]
movups xmm1, xmmword [edi + ebx*8 + 0x10]
movups xmmword [ebp + ebx*8], xmm0
movups xmmword [ebp + ebx*8 + 0x10], xmm1
add ebx, 4
cmp esi, ebx
jne 0x492f57
cmp dword [esp + 0x30], esi
mov ebx, dword [esp + 0x48]
jne 0x492f8b
jmp 0x492f9d
mov eax, edi
mov edx, ebp
jmp 0x492f8b
mov eax, edi
mov edx, ebp
mov ebx, dword [esp + 0x48]
movsd xmm0, qword [eax]
movsd qword [edx], xmm0
add edx, 8
add eax, 8
cmp edx, ecx
jb 0x492f8b
mov eax, ebx
sub eax, dword [esp + 0x8c]
mov word [ecx], ax
add ecx, 2
mov edi, dword [esp + 4]
lea edx, [edi - 4]
mov esi, dword [esp]
movzx eax, byte [esi]
cmp edx, 0xf
jb 0x493032
add al, 0xf
mov byte [esi], al
lea eax, [edi - 0x13]
cmp eax, 0x1fe
jb 0x493010
lea eax, [edi - 0x211]
mov edx, 0x80808081
mul edx
mov esi, edi
mov edi, edx
shr edi, 8
lea eax, [edi*2 + 2]
push eax
push 0xff
push ecx
call sub.msvcrt.dll_memset
add esp, 0xc
mov eax, dword [esp + 8]
lea eax, [eax + edi*2]
lea ecx, [eax + ebp]
add ecx, 4
imul eax, edi, 0xfffffe02
add eax, esi
add eax, 0xfffffdef
cmp eax, 0xff
jb 0x493020
add eax, 0xffffff01
mov byte [ecx], 0xff
inc ecx
mov byte [ecx], al
inc ecx
mov edx, dword [esp + 0x48]
add edx, dword [esp + 4]
mov ebp, ecx
jmp 0x4928a4
add al, dl
mov byte [esi], al
add ebx, edi
mov edx, ebx
mov ebp, ecx
jmp 0x4928a4
mov eax, dword [esp + 0x58]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov ebx, dword [esp + 0x18]
jmp 0x492d19