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

Disassembly:
sub esp, 0x34c
mov eax, dword [0x97ffc0]
xor eax, esp
mov dword [esp + 0x348], eax
mov eax, dword [esp + 0x358]
push ebx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x360]
push ebp
mov ebp, dword [esp + 0x35c]
mov dword [esp + 0x78], eax
push esi
mov esi, dword [esp + 0x35c]
mov al, byte [ebp + 0x2d]
movzx ecx, byte [ebp + 0x2c]
mov byte [esp + 0x84], al
movzx eax, al
mov dword [esp + 0x50], eax
shr eax, 3
imul eax, ecx
mov dword [esp + 0x90], ecx
imul ecx, dword [ebp + 0x18], 0x64
push edi
mov dword [esp + 0x58], ebp
mov dword [esp + 0x90], eax
movzx eax, byte [ecx + 0x523841]
mov ebx, dword [ebp + eax*4 + 0x30]
movzx eax, byte [ecx + 0x523842]
mov dword [esp + 0x50], ebx
mov eax, dword [ebp + eax*4 + 0x30]
mov dword [esp + 0x7c], eax
test eax, eax
je 0x49d1eb
bsf ecx, eax
je 0x49d1df
inc ecx
mov edi, 1
dec ecx
shl edi, cl
jmp 0x49d1ed
xor ecx, ecx
mov edi, 1
dec ecx
shl edi, cl
jmp 0x49d1ed
mov edi, ebx
push ebp
call fcn.00410420
push dword [esp + 0x84]
movups xmm0, xmmword [eax]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x40], eax
psrldq xmm0, 0xc
movd ecx, xmm0
mov ecx, dword [ecx]
cmp dword [ecx + 0xc], 5
sete byte [esp + 0x94]
push dword [esp + 0x94]
push dword [esp + 0x88]
push ebx
push dword [esp + 0x9c]
mov ebx, dword [esp + 0xa8]
push ebx
push dword [ebp + 0x18]
call dword [esp + 0xa4]
mov edx, dword [esp + 0x74]
add esp, 0x20
movzx ecx, al
cmp ecx, dword [esp + 0x94]
jne 0x49d270
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, edx
jne 0x49d270
shr eax, 0x10
cmp eax, edi
ja 0x49d270
xor al, al
jmp 0x49e167
xor ebp, ebp
xor edi, edi
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x64], edi
test ebx, ebx
je 0x49e134
mov eax, dword [esp + 0x7c]
xor edx, edx
mov ecx, dword [esp + 0x50]
add eax, edi
div ecx
sub ebx, edi
mov ebp, edx
mov dword [esp + 0x34], ebx
test ebp, ebp
je 0x49d2be
bsf ecx, ebp
je 0x49d2a6
inc ecx
jmp 0x49d2a8
xor ecx, ecx
dec ecx
mov edi, 1
shl edi, cl
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x64]
jmp 0x49d2c2
mov dword [esp + 0x40], ecx
push dword [esp + 0x80]
push dword [esp + 0x90]
push ebp
push ecx
push dword [esp + 0x98]
mov ecx, dword [esp + 0x6c]
push ebx
push dword [ecx + 0x18]
call dword [esp + 0xa0]
mov ecx, eax
mov dword [esp + 0x30], eax
shr ecx, 0x10
add esp, 0x1c
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x50], ecx
jae 0x49dbcf
xor ebx, ebx
mov dword [esp + 0x18], 0
mov eax, ecx
mov ebp, edi
add eax, 0xffffffff
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x38]
adc ebx, 0xffffffff
mov dword [esp + 0x30], ebx
cmp byte [eax + 0x11], 0x40
movzx edi, byte [eax + 0x11]
jne 0x49d334
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x49d354
xor ecx, ecx
xor edx, edx
mov eax, edi
and eax, 0x3f
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
add ecx, 0xffffffff
adc edx, 0xffffffff
and ebp, ecx
mov ecx, dword [esp + 0x18]
and ecx, edx
mov eax, ebp
or eax, ecx
jne 0x49d368
mov ebp, dword [esp + 0x38]
jmp 0x49d3b6
push edi
push ecx
push ebp
call fcn.0040fd20
push edi
push 1
push dword [esi + 0x10]
mov ebp, eax
mov dword [esp + 0x30], edx
call fcn.00409be0
mov edi, eax
add esp, 0x18
test edi, edi
je 0x49d3a1
mov eax, dword [esp + 0x18]
push edi
mov dword [edi + 0x30], ebp
push esi
mov dword [edi + 0x34], eax
call fcn.0041dc20
add esp, 8
add edi, 0x18
push edi
push dword [esp + 0x3c]
push 0x122
push esi
call fcn.0041d890
add esp, 0x10
mov ebp, eax
mov al, byte [ebp + 0x11]
movzx ecx, al
mov edi, ecx
mov byte [esp + 0x13], al
and edi, 0x3f
mov dword [esp + 0x24], ecx
cmp al, 0x40
jne 0x49d3d5
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x49d3f2
xor ecx, ecx
xor edx, edx
mov eax, edi
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
add ecx, 0xffffffff
adc edx, 0xffffffff
and ecx, dword [esp + 0x28]
and edx, ebx
mov eax, ecx
or eax, edx
jne 0x49d44c
mov edi, dword [esp + 0x24]
push edi
push eax
push eax
call fcn.0040fd20
push edi
push 1
push dword [esi + 0x10]
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], edx
call fcn.00409be0
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x49d42f
mov dword [esp + 0x1c], eax
jmp 0x49d4ad
mov eax, dword [esp + 0x18]
mov dword [edi + 0x30], eax
mov eax, dword [esp + 0x20]
push edi
push esi
mov dword [edi + 0x34], eax
call fcn.0041dc20
add esp, 8
lea eax, [edi + 0x18]
jmp 0x49d4a9
cmp byte [esp + 0x13], 0x40
jne 0x49d45b
or eax, 0xffffffff
or ebx, 0xffffffff
jmp 0x49d476
xor eax, eax
xor ebx, ebx
bts eax, edi
cmp edi, 0x20
cmovae ebx, eax
xor eax, ebx
cmp edi, 0x40
cmovae ebx, eax
add eax, 0xffffffff
adc ebx, 0xffffffff
cmp ecx, eax
jne 0x49d488
cmp edx, ebx
jne 0x49d488
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x1c], ebp
jmp 0x49d4ad
mov edi, dword [esp + 0x24]
push edi
push edx
push ecx
push esi
call fcn.00410a30
push eax
push ebp
push 0x125
push esi
call fcn.0041d890
mov ebx, dword [esp + 0x50]
add esp, 0x20
mov dword [esp + 0x1c], eax
mov cl, byte [ebp + 0x11]
not ebx
mov eax, dword [esp + 0x28]
mov byte [esp + 0x13], cl
not eax
movzx ecx, cl
mov edx, ecx
mov dword [esp + 0x28], eax
and edx, 0x3f
mov dword [esp + 0x24], ecx
cmp byte [esp + 0x13], 0x40
jne 0x49d4db
or ecx, 0xffffffff
or edi, 0xffffffff
jmp 0x49d4fc
xor ecx, ecx
mov eax, edx
bts ecx, eax
xor edi, edi
cmp eax, 0x20
cmovae edi, ecx
xor ecx, edi
cmp eax, 0x40
mov eax, dword [esp + 0x28]
cmovae edi, ecx
add ecx, 0xffffffff
adc edi, 0xffffffff
and eax, ecx
and ebx, edi
mov dword [esp + 0x28], eax
or eax, ebx
jne 0x49d547
mov edi, dword [esp + 0x24]
push edi
push eax
push eax
call fcn.0040fd20
push edi
push 1
push dword [esi + 0x10]
mov ebx, eax
mov dword [esp + 0x30], edx
call fcn.00409be0
mov ebp, eax
add esp, 0x18
test ebp, ebp
je 0x49d59c
mov eax, dword [esp + 0x18]
push ebp
mov dword [ebp + 0x30], ebx
push esi
mov dword [ebp + 0x34], eax
call fcn.0041dc20
add esp, 8
add ebp, 0x18
jmp 0x49d59c
cmp byte [esp + 0x13], 0x40
jne 0x49d556
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x49d571
xor eax, eax
xor ecx, ecx
bts eax, edx
cmp edx, 0x20
cmovae ecx, eax
xor eax, ecx
cmp edx, 0x40
cmovae ecx, eax
add eax, 0xffffffff
adc ecx, 0xffffffff
mov edx, dword [esp + 0x28]
cmp edx, eax
jne 0x49d57d
cmp ebx, ecx
je 0x49d59c
mov edi, dword [esp + 0x24]
push edi
push ebx
push edx
push esi
call fcn.00410a30
push eax
push ebp
push 0x125
push esi
call fcn.0041d890
add esp, 0x20
mov ebp, eax
movzx edi, byte [esp + 0x15]
mov eax, dword [esp + 0x14]
push edi
movzx ebx, al
push ebx
push 0
push 0
push dword [esp + 0x3c]
push ebp
push dword [esp + 0x70]
push esi
call fcn.0049cbc0
mov ecx, dword [esp + 0x60]
add esp, 0x20
imul ebx, edi
mov ebp, eax
mov eax, dword [esp + 0x1c]
movzx edi, byte [eax + 0x11]
shr ebx, 3
sub ebx, dword [esp + 0x2c]
add ecx, ebx
lea ebx, [esi + 0x10]
cmp dword [esp + 0x34], ecx
cmovb ecx, dword [esp + 0x34]
cmp byte [eax + 0x11], 0x40
mov dword [esp + 0x28], ecx
jne 0x49d63a
mov edx, 8
mov eax, dword [ebx]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x49d608
cmp byte [eax + 0x1e], 0
jne 0x49d6b6
mov ecx, edx
mov eax, 0
add ecx, 0xffffffff
and ecx, edx
or ecx, eax
jne 0x49d6b6
push ecx
push edx
call fcn.004612d0
dec eax
push eax
push esi
call fcn.004109e0
push eax
push dword [esp + 0x30]
push 0x152
jmp 0x49d6ca
xor edx, edx
xor ecx, ecx
mov eax, edi
and eax, 0x3f
bts edx, eax
cmp eax, 0x20
cmovae ecx, edx
xor edx, ecx
cmp eax, 0x40
cmovae ecx, edx
add edx, 0xffffffff
adc ecx, 0xffffffff
and edx, 8
mov eax, edx
mov dword [esp + 0x48], ecx
or eax, 0
jne 0x49d5f5
push edi
push eax
push eax
call fcn.0040fd20
push edi
push 1
push dword [ebx]
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], edx
call fcn.00409be0
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x49d693
mov dword [esp + 0x14], eax
mov ebx, eax
jmp 0x49d6d9
mov eax, dword [esp + 0x18]
mov dword [edi + 0x30], eax
mov eax, dword [esp + 0x20]
push edi
push esi
mov dword [edi + 0x34], eax
call fcn.0041dc20
lea eax, [edi + 0x18]
add esp, 8
mov dword [esp + 0x14], eax
mov ebx, eax
jmp 0x49d6d9
push edi
push 0
push edx
push esi
call fcn.00410a30
push eax
push dword [esp + 0x30]
push 0x140
push esi
call fcn.0041d890
mov ebx, eax
add esp, 0x20
mov dword [esp + 0x14], ebx
push ebx
lea eax, [ebp + 0x1c]
push eax
push 0x1c5
push esi
call fcn.0041d890
add esp, 0x10
mov edi, eax
cmp byte [ebp + 0x2c], 1
mov dword [esp + 0x1c], edi
jbe 0x49d86c
movzx edi, byte [ebx + 0x11]
movzx eax, byte [ebp + 0x2d]
cdq
push edi
push edx
push eax
call fcn.0040fd20
push edi
push 1
push dword [esi + 0x10]
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], edx
call fcn.00409be0
mov edi, eax
add esp, 0x18
test edi, edi
je 0x49d744
mov eax, dword [esp + 0x18]
mov dword [edi + 0x30], eax
mov eax, dword [esp + 0x20]
push edi
push esi
mov dword [edi + 0x34], eax
call fcn.0041dc20
add esp, 8
add edi, 0x18
push ebx
push edi
push 0x155
push esi
call fcn.0041d890
push eax
lea eax, [ebp + 0x1c]
push eax
push 0x152
push esi
call fcn.0041d890
add esp, 0x20
mov dword [esp + 0x20], eax
cmp byte [ebp + 0x2c], 1
mov edi, 1
jbe 0x49d7ab
lea ebx, [esp + 0x98]
nop word [eax + eax]
push 1
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], edi
push ecx
push eax
push esi
call fcn.00412100
mov dword [ebx], eax
lea ebx, [ebx + 4]
movzx eax, byte [ebp + 0x2c]
inc edi
add esp, 0x10
cmp edi, eax
mov eax, dword [esp + 0x20]
jb 0x49d780
mov ebx, dword [esp + 0x14]
movzx eax, byte [ebp + 0x2d]
push eax
push 1
push dword [esi + 0x10]
call fcn.00409be0
mov edi, eax
push edi
push esi
call fcn.0041dc20
movzx ecx, byte [ebp + 0x2c]
lea eax, [edi + 0x18]
add esp, 0x14
mov dword [esp + ecx*4 + 0x94], eax
lea eax, [esp + 0x98]
push eax
push ecx
call fcn.00409d60
add esp, 4
push eax
push esi
call fcn.0041da20
push eax
push dword [esp + 0x2c]
push 0x14f
push esi
call fcn.0041d890
movzx edi, byte [ebx + 0x11]
push edi
push 0
push 0
mov dword [esp + 0x5c], eax
call fcn.0040fd20
push edi
push 1
push dword [esi + 0x10]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x54], edx
call fcn.00409be0
mov edi, eax
add esp, 0x34
test edi, edi
je 0x49d845
mov eax, dword [esp + 0x18]
mov dword [edi + 0x30], eax
mov eax, dword [esp + 0x20]
push edi
push esi
mov dword [edi + 0x34], eax
call fcn.0041dc20
add esp, 8
add edi, 0x18
push edi
push ebx
push 0x129
push esi
call fcn.0041d890
push dword [esp + 0x44]
lea ecx, [ebp + 0x1c]
push ecx
push eax
push 0x71
push esi
call fcn.0041d900
mov edi, eax
add esp, 0x24
mov dword [esp + 0x1c], edi
mov edx, dword [esp + 0x28]
bsf ecx, edx
je 0x49d878
inc ecx
jmp 0x49d87a
xor ecx, ecx
dec ecx
mov eax, 8
shl eax, cl
mov ecx, dword [esp + 0x54]
cmp eax, ecx
jae 0x49d8ae
bsf ecx, edx
je 0x49d89e
inc ecx
mov ebx, 8
dec ecx
shl ebx, cl
mov dword [esp + 0x24], ebx
jmp 0x49d8b4
xor ecx, ecx
mov ebx, 8
dec ecx
shl ebx, cl
mov dword [esp + 0x24], ebx
jmp 0x49d8b4
mov ebx, ecx
mov dword [esp + 0x24], ecx
mov ecx, ebx
mov eax, edx
shr ecx, 3
xor edx, edx
div ecx
mov dword [esp + 0x18], eax
test eax, eax
je 0x49e111
xor ecx, ecx
mov dword [esp + 0x14], ecx
movzx ebp, byte [edi + 0x11]
cmp ebx, ebp
cmovb ebp, ebx
mov dword [esp + 0x30], ebp
test ecx, ecx
je 0x49d916
bsf ecx, ecx
je 0x49d8ea
inc ecx
jmp 0x49d8ec
xor ecx, ecx
dec ecx
mov eax, 1
shl eax, cl
cmp ebp, eax
jb 0x49d912
mov eax, dword [esp + 0x14]
bsf ecx, eax
je 0x49d904
inc ecx
jmp 0x49d906
xor ecx, ecx
dec ecx
mov ebp, 1
shl ebp, cl
mov dword [esp + 0x30], ebp
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
xor edx, edx
div ebp
xor ebx, ebx
mov dword [esp + 0x40], 0
or edi, 0xffffffff
mov dword [esp + 0x34], ebx
mov dword [esp + 0x20], edi
mov dword [esp + 0x44], eax
mov dword [esp + 0x5c], ebx
test eax, eax
je 0x49db44
mov edx, ecx
mov dword [esp + 0x60], ecx
nop dword [eax]
cmp edx, ebx
jb 0x49d976
mov eax, dword [esp + edi*4 + 0x20]
inc edi
mov dword [esp + 0x40], ebx
movzx ecx, byte [eax + 0x11]
movzx eax, byte [eax + 0x10]
imul ecx, eax
add ebx, ecx
cmp edx, ebx
jae 0x49d954
mov dword [esp + 0x20], edi
mov dword [esp + 0x34], ebx
mov edi, dword [esp + edi*4 + 0x1c]
mov eax, edx
sub eax, dword [esp + 0x40]
xor edx, edx
mov dword [esp + 0x78], eax
push 1
movzx ecx, byte [edi + 0x11]
div ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x30], eax
lea eax, [esp + 0x30]
push eax
push edi
push esi
call fcn.00412100
mov ebx, eax
add esp, 0x10
movzx eax, byte [edi + 0x11]
cmp eax, ebp
jbe 0x49db18
mov cl, byte [ebx + 0x11]
xor edx, edx
movzx eax, cl
div ebp
mov edi, eax
mov dword [esp + 0x70], edi
cmp cl, 0x20
je 0x49d9ed
cmp cl, 0x40
jne 0x49da08
cmp ebp, 0x10
je 0x49d9e2
cmp ebp, 0x20
jne 0x49da08
push ebx
push 0x1b5
jmp 0x49dae6
push ebx
push 0x1b8
jmp 0x49dae6
cmp ebp, 8
je 0x49dae0
cmp ebp, 0x10
je 0x49dad8
cmp ebp, 0x20
je 0x49daf1
mov dword [esp + 0x2c], 0
test edi, edi
je 0x49dabe
mov eax, ebp
or eax, 4
xor ebp, ebp
mov dword [esp + 0x74], eax
test ebp, ebp
jne 0x49da2b
mov eax, ebx
jmp 0x49da8c
mov eax, ebp
cdq
push 0x20
push edx
push eax
call fcn.0040fd20
push 0x20
push 1
push dword [esi + 0x10]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
call fcn.00409be0
mov edi, eax
add esp, 0x18
test edi, edi
je 0x49da75
mov eax, dword [esp + 0x68]
mov dword [edi + 0x30], eax
mov eax, dword [esp + 0x6c]
push edi
push esi
mov dword [edi + 0x34], eax
call fcn.0041dc20
add esp, 8
add edi, 0x18
push edi
push ebx
push 0x1c5
push esi
call fcn.0041d890
mov edi, dword [esp + 0x80]
add esp, 0x10
push 0
push dword [esp + 0x78]
push 4
push eax
push esi
call fcn.0041e140
mov ecx, dword [esp + 0x40]
add esp, 0x14
add ebp, dword [esp + 0x30]
mov dword [esp + ecx*4 + 0x98], eax
inc ecx
mov dword [esp + 0x2c], ecx
cmp ecx, edi
jb 0x49da23
mov ebp, dword [esp + 0x30]
lea eax, [esp + 0x98]
push eax
push edi
call fcn.00409d60
add esp, 4
push eax
push esi
call fcn.0041da20
jmp 0x49daec
push ebx
push 0x1b1
jmp 0x49dae6
push ebx
push 0x1b4
push esi
call fcn.0041d840
add esp, 0xc
mov ebx, eax
mov eax, dword [esp + 0x78]
xor edx, edx
div dword [esp + 0x4c]
push 1
mov eax, edx
xor edx, edx
div ebp
mov dword [esp + 0x50], eax
lea eax, [esp + 0x50]
push eax
push ebx
push esi
call fcn.00412100
add esp, 0x10
mov ebx, eax
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov edi, dword [esp + 0x20]
add edx, ebp
mov dword [esp + 0x60], edx
mov dword [esp + eax*4 + 0x158], ebx
inc eax
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x5c], eax
cmp eax, dword [esp + 0x44]
jb 0x49d950
mov ebx, dword [esp + 0x24]
cmp ebx, ebp
jbe 0x49db85
xor edx, edx
lea ecx, [esp + 0x158]
mov eax, ebx
div ebp
push ecx
push eax
call fcn.00409d60
add esp, 4
push eax
push esi
call fcn.0041da20
push ebx
push eax
push esi
call fcn.00411f40
mov dword [esp + 0xb0], eax
add esp, 0x18
lea eax, [esp + 0x98]
jmp 0x49db8c
lea eax, [esp + 0x158]
push eax
push 1
call fcn.00409d60
add esp, 4
push eax
push esi
call fcn.0041da20
mov ebp, dword [esp + 0x48]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
add ecx, ebx
mov dword [esp + 0x14], ecx
mov dword [esp + ebp*4 + 0xd8], eax
inc ebp
sub dword [esp + 0x18], 1
mov dword [esp + 0x3c], ebp
jne 0x49d8d1
jmp 0x49e115
xor edx, edx
mov eax, ebp
div ecx
mov eax, dword [esp + 0x38]
mov ebx, edi
mov ecx, edx
xor edi, edi
mov dword [esp + 0x4c], ecx
mov al, byte [eax + 0x11]
mov byte [esp + 0x13], al
test ecx, ecx
je 0x49e036
sub ebx, ecx
cmp al, 0x40
jne 0x49dc00
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x49dc21
xor ecx, ecx
movzx eax, al
and eax, 0x3f
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
add ecx, 0xffffffff
adc edx, 0xffffffff
and ebx, ecx
and edi, edx
mov eax, ebx
mov dword [esp + 0x44], edi
or eax, edi
jne 0x49dc35
mov ecx, dword [esp + 0x38]
jmp 0x49dc8b
movzx edi, byte [esp + 0x13]
push edi
push dword [esp + 0x48]
push ebx
call fcn.0040fd20
push edi
push 1
push dword [esi + 0x10]
mov ebx, eax
mov dword [esp + 0x5c], edx
call fcn.00409be0
mov edi, eax
add esp, 0x18
test edi, edi
je 0x49dc76
mov eax, dword [esp + 0x44]
push edi
mov dword [edi + 0x30], ebx
push esi
mov dword [edi + 0x34], eax
call fcn.0041dc20
add esp, 8
add edi, 0x18
push edi
push dword [esp + 0x3c]
push 0x122
push esi
call fcn.0041d890
add esp, 0x10
mov ecx, eax
movzx edx, byte [esp + 0x15]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x4c]
sub ebp, ebx
push edx
movzx edi, al
mov eax, ebp
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x2c], edx
xor edx, edx
div ebp
push edi
push 0
push edx
push ebp
push ecx
push dword [esp + 0x70]
push esi
call fcn.0049cbc0
mov edx, dword [esp + 0x48]
add esp, 0x20
shr edx, 3
mov ebp, eax
imul edx, edi
sub edx, ebx
bsf ecx, edx
mov dword [esp + 0x28], edx
je 0x49dcd9
inc ecx
jmp 0x49dcdb
xor ecx, ecx
dec ecx
mov eax, 8
shl eax, cl
mov ecx, dword [esp + 0x54]
cmp eax, ecx
jae 0x49dd0f
bsf ecx, edx
je 0x49dcff
inc ecx
mov edi, 8
dec ecx
shl edi, cl
mov dword [esp + 0x30], edi
jmp 0x49dd15
xor ecx, ecx
mov edi, 8
dec ecx
shl edi, cl
mov dword [esp + 0x30], edi
jmp 0x49dd15
mov edi, ecx
mov dword [esp + 0x30], ecx
mov eax, edx
mov ecx, edi
xor edx, edx
shr ecx, 3
div ecx
lea edx, [ebp + 0x1c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x1c], edx
test eax, eax
je 0x49e111
lea ecx, [ebx*8]
mov dword [esp + 0x14], ecx
nop
movzx ebp, byte [edx + 0x11]
cmp edi, ebp
cmovb ebp, edi
mov dword [esp + 0x24], ebp
test ecx, ecx
je 0x49dd85
bsf ecx, ecx
je 0x49dd59
inc ecx
jmp 0x49dd5b
xor ecx, ecx
dec ecx
mov eax, 1
shl eax, cl
cmp ebp, eax
jb 0x49dd81
mov eax, dword [esp + 0x14]
bsf ecx, eax
je 0x49dd73
inc ecx
jmp 0x49dd75
xor ecx, ecx
dec ecx
mov ebp, 1
shl ebp, cl
mov dword [esp + 0x24], ebp
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
xor edx, edx
div ebp
xor ebx, ebx
mov dword [esp + 0x18], 0
or edi, 0xffffffff
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x40], edi
mov dword [esp + 0x68], eax
mov dword [esp + 0x34], ebx
test eax, eax
je 0x49dfab
mov edx, ecx
mov dword [esp + 0x60], ecx
cmp edx, ebx
jb 0x49dde2
nop dword [eax]
mov eax, dword [esp + edi*4 + 0x20]
inc edi
mov dword [esp + 0x18], ebx
movzx ecx, byte [eax + 0x11]
movzx eax, byte [eax + 0x10]
imul ecx, eax
add ebx, ecx
cmp edx, ebx
jae 0x49ddc0
mov dword [esp + 0x40], edi
mov dword [esp + 0x5c], ebx
mov edi, dword [esp + edi*4 + 0x1c]
mov eax, edx
sub eax, dword [esp + 0x18]
xor edx, edx
mov dword [esp + 0x70], eax
push 1
movzx ecx, byte [edi + 0x11]
div ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x48], eax
lea eax, [esp + 0x48]
push eax
push edi
push esi
call fcn.00412100
mov ebx, eax
add esp, 0x10
movzx eax, byte [edi + 0x11]
cmp eax, ebp
jbe 0x49df7f
mov cl, byte [ebx + 0x11]
xor edx, edx
movzx eax, cl
div ebp
mov edi, eax
mov dword [esp + 0x78], edi
cmp cl, 0x20
je 0x49de59
cmp cl, 0x40
jne 0x49de74
cmp ebp, 0x10
je 0x49de4e
cmp ebp, 0x20
jne 0x49de74
push ebx
push 0x1b5
jmp 0x49df4d
push ebx
push 0x1b8
jmp 0x49df4d
cmp ebp, 8
je 0x49df47
cmp ebp, 0x10
je 0x49df3f
cmp ebp, 0x20
je 0x49df58
mov dword [esp + 0x20], 0
test edi, edi
je 0x49df25
mov eax, ebp
or eax, 4
xor ebp, ebp
mov dword [esp + 0x74], eax
nop
test ebp, ebp
jne 0x49de98
mov eax, ebx
jmp 0x49def3
mov eax, ebp
cdq
push 0x20
push edx
push eax
call fcn.0040fd20
push 0x20
push 1
push dword [esi + 0x10]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], edx
call fcn.00409be0
mov edi, eax
add esp, 0x18
test edi, edi
je 0x49dedc
mov eax, dword [esp + 0x44]
mov dword [edi + 0x30], eax
mov eax, dword [esp + 0x4c]
push edi
push esi
mov dword [edi + 0x34], eax
call fcn.0041dc20
add esp, 8
add edi, 0x18
push edi
push ebx
push 0x1c5
push esi
call fcn.0041d890
mov edi, dword [esp + 0x88]
add esp, 0x10
push 0
push dword [esp + 0x78]
push 4
push eax
push esi
call fcn.0041e140
mov ecx, dword [esp + 0x34]
add esp, 0x14
add ebp, dword [esp + 0x24]
mov dword [esp + ecx*4 + 0x98], eax
inc ecx
mov dword [esp + 0x20], ecx
cmp ecx, edi
jb 0x49de90
mov ebp, dword [esp + 0x24]
lea eax, [esp + 0x98]
push eax
push edi
call fcn.00409d60
add esp, 4
push eax
push esi
call fcn.0041da20
jmp 0x49df53
push ebx
push 0x1b1
jmp 0x49df4d
push ebx
push 0x1b4
push esi
call fcn.0041d840
add esp, 0xc
mov ebx, eax
mov eax, dword [esp + 0x70]
xor edx, edx
div dword [esp + 0x6c]
push 1
mov eax, edx
xor edx, edx
div ebp
mov dword [esp + 0x48], eax
lea eax, [esp + 0x48]
push eax
push ebx
push esi
call fcn.00412100
add esp, 0x10
mov ebx, eax
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x60]
mov edi, dword [esp + 0x40]
add edx, ebp
mov dword [esp + 0x60], edx
mov dword [esp + eax*4 + 0x158], ebx
inc eax
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x34], eax
cmp eax, dword [esp + 0x68]
jb 0x49ddb8
mov edi, dword [esp + 0x30]
cmp edi, ebp
jbe 0x49dfec
xor edx, edx
lea ecx, [esp + 0x158]
mov eax, edi
div ebp
push ecx
push eax
call fcn.00409d60
add esp, 4
push eax
push esi
call fcn.0041da20
push edi
push eax
push esi
call fcn.00411f40
mov dword [esp + 0xb0], eax
add esp, 0x18
lea eax, [esp + 0x98]
jmp 0x49dff3
lea eax, [esp + 0x158]
push eax
push 1
call fcn.00409d60
add esp, 4
push eax
push esi
call fcn.0041da20
mov ebp, dword [esp + 0x48]
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
add ecx, edi
mov dword [esp + 0x14], ecx
mov dword [esp + ebp*4 + 0xd8], eax
inc ebp
sub dword [esp + 0x2c], 1
mov dword [esp + 0x3c], ebp
jne 0x49dd40
jmp 0x49e115
cmp al, 0x40
jne 0x49e042
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x49e063
xor ecx, ecx
movzx eax, al
and eax, 0x3f
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
add ecx, 0xffffffff
adc edx, 0xffffffff
and ebx, ecx
and edi, edx
mov eax, ebx
mov dword [esp + 0x44], edi
or eax, edi
jne 0x49e077
mov edi, dword [esp + 0x38]
jmp 0x49e0cd
movzx edi, byte [esp + 0x13]
push edi
push dword [esp + 0x48]
push ebx
call fcn.0040fd20
push edi
push 1
push dword [esi + 0x10]
mov ebx, eax
mov dword [esp + 0x5c], edx
call fcn.00409be0
mov edi, eax
add esp, 0x18
test edi, edi
je 0x49e0b8
mov eax, dword [esp + 0x44]
push edi
mov dword [edi + 0x30], ebx
push esi
mov dword [edi + 0x34], eax
call fcn.0041dc20
add esp, 8
add edi, 0x18
push edi
push dword [esp + 0x3c]
push 0x122
push esi
call fcn.0041d890
add esp, 0x10
mov edi, eax
movzx edx, byte [esp + 0x15]
mov eax, dword [esp + 0x14]
push edx
movzx ecx, al
mov eax, edx
push ecx
push 0
push ebp
push dword [esp + 0x60]
shr eax, 3
imul eax, ecx
push edi
push dword [esp + 0x70]
push esi
mov dword [esp + 0x48], eax
call fcn.0049cbc0
mov ebp, dword [esp + 0x5c]
add eax, 0x1c
add esp, 0x20
mov dword [esp + ebp*4 + 0xd8], eax
inc ebp
mov dword [esp + 0x3c], ebp
jmp 0x49e115
mov ebp, dword [esp + 0x3c]
mov edi, dword [esp + 0x64]
add edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x64], edi
cmp edi, ebx
jb 0x49d284
mov edx, dword [esp + 0x54]
push edx
push dword [esp + 0x98]
lea eax, [esp + 0xe0]
push 0
push ebp
push eax
push esi
call fcn.0040fe70
mov esi, dword [esp + 0x70]
push eax
add esi, 0x1c
push esi
call fcn.00407f30
push dword [esi]
call fcn.00409650
add esp, 0x24
mov al, 1
mov ecx, dword [esp + 0x358]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004eee05
add esp, 0x34c
ret