Function at 0x49d1b0
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 0x49d25b
bsf ecx, eax
je 0x49d24f
inc ecx
mov edi, 1
dec ecx
shl edi, cl
jmp 0x49d25d
xor ecx, ecx
mov edi, 1
dec ecx
shl edi, cl
jmp 0x49d25d
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 0x49d2e0
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, edx
jne 0x49d2e0
shr eax, 0x10
cmp eax, edi
ja 0x49d2e0
xor al, al
jmp 0x49e1d7
xor ebp, ebp
xor edi, edi
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x64], edi
test ebx, ebx
je 0x49e1a4
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 0x49d32e
bsf ecx, ebp
je 0x49d316
inc ecx
jmp 0x49d318
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 0x49d332
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 0x49dc3f
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 0x49d3a4
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x49d3c4
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 0x49d3d8
mov ebp, dword [esp + 0x38]
jmp 0x49d426
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 0x49d411
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 0x49d445
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x49d462
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 0x49d4bc
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 0x49d49f
mov dword [esp + 0x1c], eax
jmp 0x49d51d
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 0x49d519
cmp byte [esp + 0x13], 0x40
jne 0x49d4cb
or eax, 0xffffffff
or ebx, 0xffffffff
jmp 0x49d4e6
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 0x49d4f8
cmp edx, ebx
jne 0x49d4f8
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x1c], ebp
jmp 0x49d51d
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 0x49d54b
or ecx, 0xffffffff
or edi, 0xffffffff
jmp 0x49d56c
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 0x49d5b7
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 0x49d60c
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 0x49d60c
cmp byte [esp + 0x13], 0x40
jne 0x49d5c6
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x49d5e1
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 0x49d5ed
cmp ebx, ecx
je 0x49d60c
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.0049cc30
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 0x49d6aa
mov edx, 8
mov eax, dword [ebx]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x49d678
cmp byte [eax + 0x1e], 0
jne 0x49d726
mov ecx, edx
mov eax, 0
add ecx, 0xffffffff
and ecx, edx
or ecx, eax
jne 0x49d726
push ecx
push edx
call fcn.00461340
dec eax
push eax
push esi
call fcn.00410a70
push eax
push dword [esp + 0x30]
push 0x152
jmp 0x49d73a
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 0x49d665
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 0x49d703
mov dword [esp + 0x14], eax
mov ebx, eax
jmp 0x49d749
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 0x49d749
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 0x49d8dc
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 0x49d7b4
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 0x49d81b
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 0x49d7f0
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 0x49d8b5
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 0x49d8e8
inc ecx
jmp 0x49d8ea
xor ecx, ecx
dec ecx
mov eax, 8
shl eax, cl
mov ecx, dword [esp + 0x54]
cmp eax, ecx
jae 0x49d91e
bsf ecx, edx
je 0x49d90e
inc ecx
mov ebx, 8
dec ecx
shl ebx, cl
mov dword [esp + 0x24], ebx
jmp 0x49d924
xor ecx, ecx
mov ebx, 8
dec ecx
shl ebx, cl
mov dword [esp + 0x24], ebx
jmp 0x49d924
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 0x49e181
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 0x49d986
bsf ecx, ecx
je 0x49d95a
inc ecx
jmp 0x49d95c
xor ecx, ecx
dec ecx
mov eax, 1
shl eax, cl
cmp ebp, eax
jb 0x49d982
mov eax, dword [esp + 0x14]
bsf ecx, eax
je 0x49d974
inc ecx
jmp 0x49d976
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 0x49dbb4
mov edx, ecx
mov dword [esp + 0x60], ecx
nop dword [eax]
cmp edx, ebx
jb 0x49d9e6
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 0x49d9c4
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 0x49db88
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 0x49da5d
cmp cl, 0x40
jne 0x49da78
cmp ebp, 0x10
je 0x49da52
cmp ebp, 0x20
jne 0x49da78
push ebx
push 0x1b5
jmp 0x49db56
push ebx
push 0x1b8
jmp 0x49db56
cmp ebp, 8
je 0x49db50
cmp ebp, 0x10
je 0x49db48
cmp ebp, 0x20
je 0x49db61
mov dword [esp + 0x2c], 0
test edi, edi
je 0x49db2e
mov eax, ebp
or eax, 4
xor ebp, ebp
mov dword [esp + 0x74], eax
test ebp, ebp
jne 0x49da9b
mov eax, ebx
jmp 0x49dafc
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 0x49dae5
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 0x49da93
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 0x49db5c
push ebx
push 0x1b1
jmp 0x49db56
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 0x49d9c0
mov ebx, dword [esp + 0x24]
cmp ebx, ebp
jbe 0x49dbf5
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 0x49dbfc
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 0x49d941
jmp 0x49e185
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 0x49e0a6
sub ebx, ecx
cmp al, 0x40
jne 0x49dc70
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x49dc91
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 0x49dca5
mov ecx, dword [esp + 0x38]
jmp 0x49dcfb
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 0x49dce6
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.0049cc30
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 0x49dd49
inc ecx
jmp 0x49dd4b
xor ecx, ecx
dec ecx
mov eax, 8
shl eax, cl
mov ecx, dword [esp + 0x54]
cmp eax, ecx
jae 0x49dd7f
bsf ecx, edx
je 0x49dd6f
inc ecx
mov edi, 8
dec ecx
shl edi, cl
mov dword [esp + 0x30], edi
jmp 0x49dd85
xor ecx, ecx
mov edi, 8
dec ecx
shl edi, cl
mov dword [esp + 0x30], edi
jmp 0x49dd85
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 0x49e181
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 0x49ddf5
bsf ecx, ecx
je 0x49ddc9
inc ecx
jmp 0x49ddcb
xor ecx, ecx
dec ecx
mov eax, 1
shl eax, cl
cmp ebp, eax
jb 0x49ddf1
mov eax, dword [esp + 0x14]
bsf ecx, eax
je 0x49dde3
inc ecx
jmp 0x49dde5
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 0x49e01b
mov edx, ecx
mov dword [esp + 0x60], ecx
cmp edx, ebx
jb 0x49de52
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 0x49de30
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 0x49dfef
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 0x49dec9
cmp cl, 0x40
jne 0x49dee4
cmp ebp, 0x10
je 0x49debe
cmp ebp, 0x20
jne 0x49dee4
push ebx
push 0x1b5
jmp 0x49dfbd
push ebx
push 0x1b8
jmp 0x49dfbd
cmp ebp, 8
je 0x49dfb7
cmp ebp, 0x10
je 0x49dfaf
cmp ebp, 0x20
je 0x49dfc8
mov dword [esp + 0x20], 0
test edi, edi
je 0x49df95
mov eax, ebp
or eax, 4
xor ebp, ebp
mov dword [esp + 0x74], eax
nop
test ebp, ebp
jne 0x49df08
mov eax, ebx
jmp 0x49df63
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 0x49df4c
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 0x49df00
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 0x49dfc3
push ebx
push 0x1b1
jmp 0x49dfbd
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 0x49de28
mov edi, dword [esp + 0x30]
cmp edi, ebp
jbe 0x49e05c
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 0x49e063
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 0x49ddb0
jmp 0x49e185
cmp al, 0x40
jne 0x49e0b2
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x49e0d3
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 0x49e0e7
mov edi, dword [esp + 0x38]
jmp 0x49e13d
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 0x49e128
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.0049cc30
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 0x49e185
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 0x49d2f4
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.004eee25
add esp, 0x34c
ret