Function at 0x49d220
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 0x49d2cb
bsf ecx, eax
je 0x49d2bf
inc ecx
mov edi, 1
dec ecx
shl edi, cl
jmp 0x49d2cd
xor ecx, ecx
mov edi, 1
dec ecx
shl edi, cl
jmp 0x49d2cd
mov edi, ebx
push ebp
call fcn.004104b0
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 0x49d350
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, edx
jne 0x49d350
shr eax, 0x10
cmp eax, edi
ja 0x49d350
xor al, al
jmp 0x49e247
xor ebp, ebp
xor edi, edi
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x64], edi
test ebx, ebx
je 0x49e214
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 0x49d39e
bsf ecx, ebp
je 0x49d386
inc ecx
jmp 0x49d388
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 0x49d3a2
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 0x49dcaf
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 0x49d414
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x49d434
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 0x49d448
mov ebp, dword [esp + 0x38]
jmp 0x49d496
push edi
push ecx
push ebp
call fcn.0040fdb0
push edi
push 1
push dword [esi + 0x10]
mov ebp, eax
mov dword [esp + 0x30], edx
call fcn.00409c50
mov edi, eax
add esp, 0x18
test edi, edi
je 0x49d481
mov eax, dword [esp + 0x18]
push edi
mov dword [edi + 0x30], ebp
push esi
mov dword [edi + 0x34], eax
call fcn.0041dcb0
add esp, 8
add edi, 0x18
push edi
push dword [esp + 0x3c]
push 0x122
push esi
call fcn.0041d920
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 0x49d4b5
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x49d4d2
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 0x49d52c
mov edi, dword [esp + 0x24]
push edi
push eax
push eax
call fcn.0040fdb0
push edi
push 1
push dword [esi + 0x10]
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], edx
call fcn.00409c50
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x49d50f
mov dword [esp + 0x1c], eax
jmp 0x49d58d
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.0041dcb0
add esp, 8
lea eax, [edi + 0x18]
jmp 0x49d589
cmp byte [esp + 0x13], 0x40
jne 0x49d53b
or eax, 0xffffffff
or ebx, 0xffffffff
jmp 0x49d556
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 0x49d568
cmp edx, ebx
jne 0x49d568
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x1c], ebp
jmp 0x49d58d
mov edi, dword [esp + 0x24]
push edi
push edx
push ecx
push esi
call fcn.00410ac0
push eax
push ebp
push 0x125
push esi
call fcn.0041d920
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 0x49d5bb
or ecx, 0xffffffff
or edi, 0xffffffff
jmp 0x49d5dc
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 0x49d627
mov edi, dword [esp + 0x24]
push edi
push eax
push eax
call fcn.0040fdb0
push edi
push 1
push dword [esi + 0x10]
mov ebx, eax
mov dword [esp + 0x30], edx
call fcn.00409c50
mov ebp, eax
add esp, 0x18
test ebp, ebp
je 0x49d67c
mov eax, dword [esp + 0x18]
push ebp
mov dword [ebp + 0x30], ebx
push esi
mov dword [ebp + 0x34], eax
call fcn.0041dcb0
add esp, 8
add ebp, 0x18
jmp 0x49d67c
cmp byte [esp + 0x13], 0x40
jne 0x49d636
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x49d651
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 0x49d65d
cmp ebx, ecx
je 0x49d67c
mov edi, dword [esp + 0x24]
push edi
push ebx
push edx
push esi
call fcn.00410ac0
push eax
push ebp
push 0x125
push esi
call fcn.0041d920
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.0049cca0
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 0x49d71a
mov edx, 8
mov eax, dword [ebx]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x49d6e8
cmp byte [eax + 0x1e], 0
jne 0x49d796
mov ecx, edx
mov eax, 0
add ecx, 0xffffffff
and ecx, edx
or ecx, eax
jne 0x49d796
push ecx
push edx
call fcn.00461370
dec eax
push eax
push esi
call fcn.00410a70
push eax
push dword [esp + 0x30]
push 0x152
jmp 0x49d7aa
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 0x49d6d5
push edi
push eax
push eax
call fcn.0040fdb0
push edi
push 1
push dword [ebx]
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], edx
call fcn.00409c50
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x49d773
mov dword [esp + 0x14], eax
mov ebx, eax
jmp 0x49d7b9
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.0041dcb0
lea eax, [edi + 0x18]
add esp, 8
mov dword [esp + 0x14], eax
mov ebx, eax
jmp 0x49d7b9
push edi
push 0
push edx
push esi
call fcn.00410ac0
push eax
push dword [esp + 0x30]
push 0x140
push esi
call fcn.0041d920
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.0041d920
add esp, 0x10
mov edi, eax
cmp byte [ebp + 0x2c], 1
mov dword [esp + 0x1c], edi
jbe 0x49d94c
movzx edi, byte [ebx + 0x11]
movzx eax, byte [ebp + 0x2d]
cdq
push edi
push edx
push eax
call fcn.0040fdb0
push edi
push 1
push dword [esi + 0x10]
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], edx
call fcn.00409c50
mov edi, eax
add esp, 0x18
test edi, edi
je 0x49d824
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.0041dcb0
add esp, 8
add edi, 0x18
push ebx
push edi
push 0x155
push esi
call fcn.0041d920
push eax
lea eax, [ebp + 0x1c]
push eax
push 0x152
push esi
call fcn.0041d920
add esp, 0x20
mov dword [esp + 0x20], eax
cmp byte [ebp + 0x2c], 1
mov edi, 1
jbe 0x49d88b
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.00412190
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 0x49d860
mov ebx, dword [esp + 0x14]
movzx eax, byte [ebp + 0x2d]
push eax
push 1
push dword [esi + 0x10]
call fcn.00409c50
mov edi, eax
push edi
push esi
call fcn.0041dcb0
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.00409dd0
add esp, 4
push eax
push esi
call fcn.0041dab0
push eax
push dword [esp + 0x2c]
push 0x14f
push esi
call fcn.0041d920
movzx edi, byte [ebx + 0x11]
push edi
push 0
push 0
mov dword [esp + 0x5c], eax
call fcn.0040fdb0
push edi
push 1
push dword [esi + 0x10]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x54], edx
call fcn.00409c50
mov edi, eax
add esp, 0x34
test edi, edi
je 0x49d925
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.0041dcb0
add esp, 8
add edi, 0x18
push edi
push ebx
push 0x129
push esi
call fcn.0041d920
push dword [esp + 0x44]
lea ecx, [ebp + 0x1c]
push ecx
push eax
push 0x71
push esi
call fcn.0041d990
mov edi, eax
add esp, 0x24
mov dword [esp + 0x1c], edi
mov edx, dword [esp + 0x28]
bsf ecx, edx
je 0x49d958
inc ecx
jmp 0x49d95a
xor ecx, ecx
dec ecx
mov eax, 8
shl eax, cl
mov ecx, dword [esp + 0x54]
cmp eax, ecx
jae 0x49d98e
bsf ecx, edx
je 0x49d97e
inc ecx
mov ebx, 8
dec ecx
shl ebx, cl
mov dword [esp + 0x24], ebx
jmp 0x49d994
xor ecx, ecx
mov ebx, 8
dec ecx
shl ebx, cl
mov dword [esp + 0x24], ebx
jmp 0x49d994
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 0x49e1f1
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 0x49d9f6
bsf ecx, ecx
je 0x49d9ca
inc ecx
jmp 0x49d9cc
xor ecx, ecx
dec ecx
mov eax, 1
shl eax, cl
cmp ebp, eax
jb 0x49d9f2
mov eax, dword [esp + 0x14]
bsf ecx, eax
je 0x49d9e4
inc ecx
jmp 0x49d9e6
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 0x49dc24
mov edx, ecx
mov dword [esp + 0x60], ecx
nop dword [eax]
cmp edx, ebx
jb 0x49da56
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 0x49da34
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.00412190
mov ebx, eax
add esp, 0x10
movzx eax, byte [edi + 0x11]
cmp eax, ebp
jbe 0x49dbf8
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 0x49dacd
cmp cl, 0x40
jne 0x49dae8
cmp ebp, 0x10
je 0x49dac2
cmp ebp, 0x20
jne 0x49dae8
push ebx
push 0x1b5
jmp 0x49dbc6
push ebx
push 0x1b8
jmp 0x49dbc6
cmp ebp, 8
je 0x49dbc0
cmp ebp, 0x10
je 0x49dbb8
cmp ebp, 0x20
je 0x49dbd1
mov dword [esp + 0x2c], 0
test edi, edi
je 0x49db9e
mov eax, ebp
or eax, 4
xor ebp, ebp
mov dword [esp + 0x74], eax
test ebp, ebp
jne 0x49db0b
mov eax, ebx
jmp 0x49db6c
mov eax, ebp
cdq
push 0x20
push edx
push eax
call fcn.0040fdb0
push 0x20
push 1
push dword [esi + 0x10]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
call fcn.00409c50
mov edi, eax
add esp, 0x18
test edi, edi
je 0x49db55
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.0041dcb0
add esp, 8
add edi, 0x18
push edi
push ebx
push 0x1c5
push esi
call fcn.0041d920
mov edi, dword [esp + 0x80]
add esp, 0x10
push 0
push dword [esp + 0x78]
push 4
push eax
push esi
call fcn.0041e1d0
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 0x49db03
mov ebp, dword [esp + 0x30]
lea eax, [esp + 0x98]
push eax
push edi
call fcn.00409dd0
add esp, 4
push eax
push esi
call fcn.0041dab0
jmp 0x49dbcc
push ebx
push 0x1b1
jmp 0x49dbc6
push ebx
push 0x1b4
push esi
call fcn.0041d8d0
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.00412190
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 0x49da30
mov ebx, dword [esp + 0x24]
cmp ebx, ebp
jbe 0x49dc65
xor edx, edx
lea ecx, [esp + 0x158]
mov eax, ebx
div ebp
push ecx
push eax
call fcn.00409dd0
add esp, 4
push eax
push esi
call fcn.0041dab0
push ebx
push eax
push esi
call fcn.00411fd0
mov dword [esp + 0xb0], eax
add esp, 0x18
lea eax, [esp + 0x98]
jmp 0x49dc6c
lea eax, [esp + 0x158]
push eax
push 1
call fcn.00409dd0
add esp, 4
push eax
push esi
call fcn.0041dab0
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 0x49d9b1
jmp 0x49e1f5
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 0x49e116
sub ebx, ecx
cmp al, 0x40
jne 0x49dce0
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x49dd01
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 0x49dd15
mov ecx, dword [esp + 0x38]
jmp 0x49dd6b
movzx edi, byte [esp + 0x13]
push edi
push dword [esp + 0x48]
push ebx
call fcn.0040fdb0
push edi
push 1
push dword [esi + 0x10]
mov ebx, eax
mov dword [esp + 0x5c], edx
call fcn.00409c50
mov edi, eax
add esp, 0x18
test edi, edi
je 0x49dd56
mov eax, dword [esp + 0x44]
push edi
mov dword [edi + 0x30], ebx
push esi
mov dword [edi + 0x34], eax
call fcn.0041dcb0
add esp, 8
add edi, 0x18
push edi
push dword [esp + 0x3c]
push 0x122
push esi
call fcn.0041d920
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.0049cca0
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 0x49ddb9
inc ecx
jmp 0x49ddbb
xor ecx, ecx
dec ecx
mov eax, 8
shl eax, cl
mov ecx, dword [esp + 0x54]
cmp eax, ecx
jae 0x49ddef
bsf ecx, edx
je 0x49dddf
inc ecx
mov edi, 8
dec ecx
shl edi, cl
mov dword [esp + 0x30], edi
jmp 0x49ddf5
xor ecx, ecx
mov edi, 8
dec ecx
shl edi, cl
mov dword [esp + 0x30], edi
jmp 0x49ddf5
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 0x49e1f1
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 0x49de65
bsf ecx, ecx
je 0x49de39
inc ecx
jmp 0x49de3b
xor ecx, ecx
dec ecx
mov eax, 1
shl eax, cl
cmp ebp, eax
jb 0x49de61
mov eax, dword [esp + 0x14]
bsf ecx, eax
je 0x49de53
inc ecx
jmp 0x49de55
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 0x49e08b
mov edx, ecx
mov dword [esp + 0x60], ecx
cmp edx, ebx
jb 0x49dec2
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 0x49dea0
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.00412190
mov ebx, eax
add esp, 0x10
movzx eax, byte [edi + 0x11]
cmp eax, ebp
jbe 0x49e05f
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 0x49df39
cmp cl, 0x40
jne 0x49df54
cmp ebp, 0x10
je 0x49df2e
cmp ebp, 0x20
jne 0x49df54
push ebx
push 0x1b5
jmp 0x49e02d
push ebx
push 0x1b8
jmp 0x49e02d
cmp ebp, 8
je 0x49e027
cmp ebp, 0x10
je 0x49e01f
cmp ebp, 0x20
je 0x49e038
mov dword [esp + 0x20], 0
test edi, edi
je 0x49e005
mov eax, ebp
or eax, 4
xor ebp, ebp
mov dword [esp + 0x74], eax
nop
test ebp, ebp
jne 0x49df78
mov eax, ebx
jmp 0x49dfd3
mov eax, ebp
cdq
push 0x20
push edx
push eax
call fcn.0040fdb0
push 0x20
push 1
push dword [esi + 0x10]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], edx
call fcn.00409c50
mov edi, eax
add esp, 0x18
test edi, edi
je 0x49dfbc
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.0041dcb0
add esp, 8
add edi, 0x18
push edi
push ebx
push 0x1c5
push esi
call fcn.0041d920
mov edi, dword [esp + 0x88]
add esp, 0x10
push 0
push dword [esp + 0x78]
push 4
push eax
push esi
call fcn.0041e1d0
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 0x49df70
mov ebp, dword [esp + 0x24]
lea eax, [esp + 0x98]
push eax
push edi
call fcn.00409dd0
add esp, 4
push eax
push esi
call fcn.0041dab0
jmp 0x49e033
push ebx
push 0x1b1
jmp 0x49e02d
push ebx
push 0x1b4
push esi
call fcn.0041d8d0
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.00412190
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 0x49de98
mov edi, dword [esp + 0x30]
cmp edi, ebp
jbe 0x49e0cc
xor edx, edx
lea ecx, [esp + 0x158]
mov eax, edi
div ebp
push ecx
push eax
call fcn.00409dd0
add esp, 4
push eax
push esi
call fcn.0041dab0
push edi
push eax
push esi
call fcn.00411fd0
mov dword [esp + 0xb0], eax
add esp, 0x18
lea eax, [esp + 0x98]
jmp 0x49e0d3
lea eax, [esp + 0x158]
push eax
push 1
call fcn.00409dd0
add esp, 4
push eax
push esi
call fcn.0041dab0
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 0x49de20
jmp 0x49e1f5
cmp al, 0x40
jne 0x49e122
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x49e143
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 0x49e157
mov edi, dword [esp + 0x38]
jmp 0x49e1ad
movzx edi, byte [esp + 0x13]
push edi
push dword [esp + 0x48]
push ebx
call fcn.0040fdb0
push edi
push 1
push dword [esi + 0x10]
mov ebx, eax
mov dword [esp + 0x5c], edx
call fcn.00409c50
mov edi, eax
add esp, 0x18
test edi, edi
je 0x49e198
mov eax, dword [esp + 0x44]
push edi
mov dword [edi + 0x30], ebx
push esi
mov dword [edi + 0x34], eax
call fcn.0041dcb0
add esp, 8
add edi, 0x18
push edi
push dword [esp + 0x3c]
push 0x122
push esi
call fcn.0041d920
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.0049cca0
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 0x49e1f5
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 0x49d364
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.0040ff00
mov esi, dword [esp + 0x70]
push eax
add esi, 0x1c
push esi
call fcn.00407fa0
push dword [esi]
call fcn.004096c0
add esp, 0x24
mov al, 1
mov ecx, dword [esp + 0x358]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004eeee5
add esp, 0x34c
ret