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

Disassembly:
sub esp, 0x34c
mov eax, dword [0x97efc0]
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 + 0x5237e9]
mov ebx, dword [ebp + eax*4 + 0x30]
movzx eax, byte [ecx + 0x5237ea]
mov dword [esp + 0x50], ebx
mov eax, dword [ebp + eax*4 + 0x30]
mov dword [esp + 0x7c], eax
test eax, eax
je 0x49d13b
bsf ecx, eax
je 0x49d12f
inc ecx
mov edi, 1
dec ecx
shl edi, cl
jmp 0x49d13d
xor ecx, ecx
mov edi, 1
dec ecx
shl edi, cl
jmp 0x49d13d
mov edi, ebx
push ebp
call fcn.004103f0
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 0x49d1c0
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, edx
jne 0x49d1c0
shr eax, 0x10
cmp eax, edi
ja 0x49d1c0
xor al, al
jmp 0x49e0b7
xor ebp, ebp
xor edi, edi
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x64], edi
test ebx, ebx
je 0x49e084
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 0x49d20e
bsf ecx, ebp
je 0x49d1f6
inc ecx
jmp 0x49d1f8
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 0x49d212
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 0x49db1f
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 0x49d284
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x49d2a4
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 0x49d2b8
mov ebp, dword [esp + 0x38]
jmp 0x49d306
push edi
push ecx
push ebp
call fcn.0040fcf0
push edi
push 1
push dword [esi + 0x10]
mov ebp, eax
mov dword [esp + 0x30], edx
call fcn.00409bc0
mov edi, eax
add esp, 0x18
test edi, edi
je 0x49d2f1
mov eax, dword [esp + 0x18]
push edi
mov dword [edi + 0x30], ebp
push esi
mov dword [edi + 0x34], eax
call fcn.0041dbe0
add esp, 8
add edi, 0x18
push edi
push dword [esp + 0x3c]
push 0x122
push esi
call fcn.0041d850
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 0x49d325
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x49d342
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 0x49d39c
mov edi, dword [esp + 0x24]
push edi
push eax
push eax
call fcn.0040fcf0
push edi
push 1
push dword [esi + 0x10]
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], edx
call fcn.00409bc0
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x49d37f
mov dword [esp + 0x1c], eax
jmp 0x49d3fd
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.0041dbe0
add esp, 8
lea eax, [edi + 0x18]
jmp 0x49d3f9
cmp byte [esp + 0x13], 0x40
jne 0x49d3ab
or eax, 0xffffffff
or ebx, 0xffffffff
jmp 0x49d3c6
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 0x49d3d8
cmp edx, ebx
jne 0x49d3d8
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x1c], ebp
jmp 0x49d3fd
mov edi, dword [esp + 0x24]
push edi
push edx
push ecx
push esi
call fcn.00410a00
push eax
push ebp
push 0x125
push esi
call fcn.0041d850
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 0x49d42b
or ecx, 0xffffffff
or edi, 0xffffffff
jmp 0x49d44c
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 0x49d497
mov edi, dword [esp + 0x24]
push edi
push eax
push eax
call fcn.0040fcf0
push edi
push 1
push dword [esi + 0x10]
mov ebx, eax
mov dword [esp + 0x30], edx
call fcn.00409bc0
mov ebp, eax
add esp, 0x18
test ebp, ebp
je 0x49d4ec
mov eax, dword [esp + 0x18]
push ebp
mov dword [ebp + 0x30], ebx
push esi
mov dword [ebp + 0x34], eax
call fcn.0041dbe0
add esp, 8
add ebp, 0x18
jmp 0x49d4ec
cmp byte [esp + 0x13], 0x40
jne 0x49d4a6
or eax, 0xffffffff
or ecx, 0xffffffff
jmp 0x49d4c1
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 0x49d4cd
cmp ebx, ecx
je 0x49d4ec
mov edi, dword [esp + 0x24]
push edi
push ebx
push edx
push esi
call fcn.00410a00
push eax
push ebp
push 0x125
push esi
call fcn.0041d850
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.0049cb10
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 0x49d58a
mov edx, 8
mov eax, dword [ebx]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x49d558
cmp byte [eax + 0x1e], 0
jne 0x49d606
mov ecx, edx
mov eax, 0
add ecx, 0xffffffff
and ecx, edx
or ecx, eax
jne 0x49d606
push ecx
push edx
call fcn.004611e0
dec eax
push eax
push esi
call fcn.004109b0
push eax
push dword [esp + 0x30]
push 0x152
jmp 0x49d61a
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 0x49d545
push edi
push eax
push eax
call fcn.0040fcf0
push edi
push 1
push dword [ebx]
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], edx
call fcn.00409bc0
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x49d5e3
mov dword [esp + 0x14], eax
mov ebx, eax
jmp 0x49d629
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.0041dbe0
lea eax, [edi + 0x18]
add esp, 8
mov dword [esp + 0x14], eax
mov ebx, eax
jmp 0x49d629
push edi
push 0
push edx
push esi
call fcn.00410a00
push eax
push dword [esp + 0x30]
push 0x140
push esi
call fcn.0041d850
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.0041d850
add esp, 0x10
mov edi, eax
cmp byte [ebp + 0x2c], 1
mov dword [esp + 0x1c], edi
jbe 0x49d7bc
movzx edi, byte [ebx + 0x11]
movzx eax, byte [ebp + 0x2d]
cdq
push edi
push edx
push eax
call fcn.0040fcf0
push edi
push 1
push dword [esi + 0x10]
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], edx
call fcn.00409bc0
mov edi, eax
add esp, 0x18
test edi, edi
je 0x49d694
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.0041dbe0
add esp, 8
add edi, 0x18
push ebx
push edi
push 0x155
push esi
call fcn.0041d850
push eax
lea eax, [ebp + 0x1c]
push eax
push 0x152
push esi
call fcn.0041d850
add esp, 0x20
mov dword [esp + 0x20], eax
cmp byte [ebp + 0x2c], 1
mov edi, 1
jbe 0x49d6fb
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.004120d0
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 0x49d6d0
mov ebx, dword [esp + 0x14]
movzx eax, byte [ebp + 0x2d]
push eax
push 1
push dword [esi + 0x10]
call fcn.00409bc0
mov edi, eax
push edi
push esi
call fcn.0041dbe0
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.00409d40
add esp, 4
push eax
push esi
call fcn.0041d9e0
push eax
push dword [esp + 0x2c]
push 0x14f
push esi
call fcn.0041d850
movzx edi, byte [ebx + 0x11]
push edi
push 0
push 0
mov dword [esp + 0x5c], eax
call fcn.0040fcf0
push edi
push 1
push dword [esi + 0x10]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x54], edx
call fcn.00409bc0
mov edi, eax
add esp, 0x34
test edi, edi
je 0x49d795
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.0041dbe0
add esp, 8
add edi, 0x18
push edi
push ebx
push 0x129
push esi
call fcn.0041d850
push dword [esp + 0x44]
lea ecx, [ebp + 0x1c]
push ecx
push eax
push 0x71
push esi
call fcn.0041d8c0
mov edi, eax
add esp, 0x24
mov dword [esp + 0x1c], edi
mov edx, dword [esp + 0x28]
bsf ecx, edx
je 0x49d7c8
inc ecx
jmp 0x49d7ca
xor ecx, ecx
dec ecx
mov eax, 8
shl eax, cl
mov ecx, dword [esp + 0x54]
cmp eax, ecx
jae 0x49d7fe
bsf ecx, edx
je 0x49d7ee
inc ecx
mov ebx, 8
dec ecx
shl ebx, cl
mov dword [esp + 0x24], ebx
jmp 0x49d804
xor ecx, ecx
mov ebx, 8
dec ecx
shl ebx, cl
mov dword [esp + 0x24], ebx
jmp 0x49d804
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 0x49e061
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 0x49d866
bsf ecx, ecx
je 0x49d83a
inc ecx
jmp 0x49d83c
xor ecx, ecx
dec ecx
mov eax, 1
shl eax, cl
cmp ebp, eax
jb 0x49d862
mov eax, dword [esp + 0x14]
bsf ecx, eax
je 0x49d854
inc ecx
jmp 0x49d856
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 0x49da94
mov edx, ecx
mov dword [esp + 0x60], ecx
nop dword [eax]
cmp edx, ebx
jb 0x49d8c6
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 0x49d8a4
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.004120d0
mov ebx, eax
add esp, 0x10
movzx eax, byte [edi + 0x11]
cmp eax, ebp
jbe 0x49da68
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 0x49d93d
cmp cl, 0x40
jne 0x49d958
cmp ebp, 0x10
je 0x49d932
cmp ebp, 0x20
jne 0x49d958
push ebx
push 0x1b5
jmp 0x49da36
push ebx
push 0x1b8
jmp 0x49da36
cmp ebp, 8
je 0x49da30
cmp ebp, 0x10
je 0x49da28
cmp ebp, 0x20
je 0x49da41
mov dword [esp + 0x2c], 0
test edi, edi
je 0x49da0e
mov eax, ebp
or eax, 4
xor ebp, ebp
mov dword [esp + 0x74], eax
test ebp, ebp
jne 0x49d97b
mov eax, ebx
jmp 0x49d9dc
mov eax, ebp
cdq
push 0x20
push edx
push eax
call fcn.0040fcf0
push 0x20
push 1
push dword [esi + 0x10]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
call fcn.00409bc0
mov edi, eax
add esp, 0x18
test edi, edi
je 0x49d9c5
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.0041dbe0
add esp, 8
add edi, 0x18
push edi
push ebx
push 0x1c5
push esi
call fcn.0041d850
mov edi, dword [esp + 0x80]
add esp, 0x10
push 0
push dword [esp + 0x78]
push 4
push eax
push esi
call fcn.0041e100
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 0x49d973
mov ebp, dword [esp + 0x30]
lea eax, [esp + 0x98]
push eax
push edi
call fcn.00409d40
add esp, 4
push eax
push esi
call fcn.0041d9e0
jmp 0x49da3c
push ebx
push 0x1b1
jmp 0x49da36
push ebx
push 0x1b4
push esi
call fcn.0041d800
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.004120d0
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 0x49d8a0
mov ebx, dword [esp + 0x24]
cmp ebx, ebp
jbe 0x49dad5
xor edx, edx
lea ecx, [esp + 0x158]
mov eax, ebx
div ebp
push ecx
push eax
call fcn.00409d40
add esp, 4
push eax
push esi
call fcn.0041d9e0
push ebx
push eax
push esi
call fcn.00411f10
mov dword [esp + 0xb0], eax
add esp, 0x18
lea eax, [esp + 0x98]
jmp 0x49dadc
lea eax, [esp + 0x158]
push eax
push 1
call fcn.00409d40
add esp, 4
push eax
push esi
call fcn.0041d9e0
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 0x49d821
jmp 0x49e065
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 0x49df86
sub ebx, ecx
cmp al, 0x40
jne 0x49db50
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x49db71
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 0x49db85
mov ecx, dword [esp + 0x38]
jmp 0x49dbdb
movzx edi, byte [esp + 0x13]
push edi
push dword [esp + 0x48]
push ebx
call fcn.0040fcf0
push edi
push 1
push dword [esi + 0x10]
mov ebx, eax
mov dword [esp + 0x5c], edx
call fcn.00409bc0
mov edi, eax
add esp, 0x18
test edi, edi
je 0x49dbc6
mov eax, dword [esp + 0x44]
push edi
mov dword [edi + 0x30], ebx
push esi
mov dword [edi + 0x34], eax
call fcn.0041dbe0
add esp, 8
add edi, 0x18
push edi
push dword [esp + 0x3c]
push 0x122
push esi
call fcn.0041d850
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.0049cb10
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 0x49dc29
inc ecx
jmp 0x49dc2b
xor ecx, ecx
dec ecx
mov eax, 8
shl eax, cl
mov ecx, dword [esp + 0x54]
cmp eax, ecx
jae 0x49dc5f
bsf ecx, edx
je 0x49dc4f
inc ecx
mov edi, 8
dec ecx
shl edi, cl
mov dword [esp + 0x30], edi
jmp 0x49dc65
xor ecx, ecx
mov edi, 8
dec ecx
shl edi, cl
mov dword [esp + 0x30], edi
jmp 0x49dc65
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 0x49e061
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 0x49dcd5
bsf ecx, ecx
je 0x49dca9
inc ecx
jmp 0x49dcab
xor ecx, ecx
dec ecx
mov eax, 1
shl eax, cl
cmp ebp, eax
jb 0x49dcd1
mov eax, dword [esp + 0x14]
bsf ecx, eax
je 0x49dcc3
inc ecx
jmp 0x49dcc5
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 0x49defb
mov edx, ecx
mov dword [esp + 0x60], ecx
cmp edx, ebx
jb 0x49dd32
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 0x49dd10
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.004120d0
mov ebx, eax
add esp, 0x10
movzx eax, byte [edi + 0x11]
cmp eax, ebp
jbe 0x49decf
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 0x49dda9
cmp cl, 0x40
jne 0x49ddc4
cmp ebp, 0x10
je 0x49dd9e
cmp ebp, 0x20
jne 0x49ddc4
push ebx
push 0x1b5
jmp 0x49de9d
push ebx
push 0x1b8
jmp 0x49de9d
cmp ebp, 8
je 0x49de97
cmp ebp, 0x10
je 0x49de8f
cmp ebp, 0x20
je 0x49dea8
mov dword [esp + 0x20], 0
test edi, edi
je 0x49de75
mov eax, ebp
or eax, 4
xor ebp, ebp
mov dword [esp + 0x74], eax
nop
test ebp, ebp
jne 0x49dde8
mov eax, ebx
jmp 0x49de43
mov eax, ebp
cdq
push 0x20
push edx
push eax
call fcn.0040fcf0
push 0x20
push 1
push dword [esi + 0x10]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], edx
call fcn.00409bc0
mov edi, eax
add esp, 0x18
test edi, edi
je 0x49de2c
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.0041dbe0
add esp, 8
add edi, 0x18
push edi
push ebx
push 0x1c5
push esi
call fcn.0041d850
mov edi, dword [esp + 0x88]
add esp, 0x10
push 0
push dword [esp + 0x78]
push 4
push eax
push esi
call fcn.0041e100
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 0x49dde0
mov ebp, dword [esp + 0x24]
lea eax, [esp + 0x98]
push eax
push edi
call fcn.00409d40
add esp, 4
push eax
push esi
call fcn.0041d9e0
jmp 0x49dea3
push ebx
push 0x1b1
jmp 0x49de9d
push ebx
push 0x1b4
push esi
call fcn.0041d800
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.004120d0
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 0x49dd08
mov edi, dword [esp + 0x30]
cmp edi, ebp
jbe 0x49df3c
xor edx, edx
lea ecx, [esp + 0x158]
mov eax, edi
div ebp
push ecx
push eax
call fcn.00409d40
add esp, 4
push eax
push esi
call fcn.0041d9e0
push edi
push eax
push esi
call fcn.00411f10
mov dword [esp + 0xb0], eax
add esp, 0x18
lea eax, [esp + 0x98]
jmp 0x49df43
lea eax, [esp + 0x158]
push eax
push 1
call fcn.00409d40
add esp, 4
push eax
push esi
call fcn.0041d9e0
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 0x49dc90
jmp 0x49e065
cmp al, 0x40
jne 0x49df92
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x49dfb3
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 0x49dfc7
mov edi, dword [esp + 0x38]
jmp 0x49e01d
movzx edi, byte [esp + 0x13]
push edi
push dword [esp + 0x48]
push ebx
call fcn.0040fcf0
push edi
push 1
push dword [esi + 0x10]
mov ebx, eax
mov dword [esp + 0x5c], edx
call fcn.00409bc0
mov edi, eax
add esp, 0x18
test edi, edi
je 0x49e008
mov eax, dword [esp + 0x44]
push edi
mov dword [edi + 0x30], ebx
push esi
mov dword [edi + 0x34], eax
call fcn.0041dbe0
add esp, 8
add edi, 0x18
push edi
push dword [esp + 0x3c]
push 0x122
push esi
call fcn.0041d850
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.0049cb10
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 0x49e065
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 0x49d1d4
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.0040fe40
mov esi, dword [esp + 0x70]
push eax
add esi, 0x1c
push esi
call fcn.00407f10
push dword [esi]
call fcn.00409630
add esp, 0x24
mov al, 1
mov ecx, dword [esp + 0x358]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004eec95
add esp, 0x34c
ret