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

Disassembly:
mov ecx, dword [0x587cec]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x50]
cmp eax, dword [ecx + 8]
jbe 0x49f5cb
sub esp, 0xd0
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
call fcn.0049f5e0
movzx eax, byte [esp + 0x18]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
test al, al
je 0x49f55d
mov dword [esp + 0x40], edx
mov dword [esp + 0xc0], ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0049f820
movzx eax, byte [esp + 0x14]
test al, al
je 0x49f55d
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov edx, eax
neg eax
test ecx, ecx
je 0x49ed72
mov ebx, dword [esp + 0xc]
cmp byte [ebx], 0x2c
jne 0x49eddb
mov ecx, dword [esp + 0xc0]
mov dword [esp + 0xec], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], 0xffffffff
mov dword [esp + 0x104], 0x7fffffff
mov byte [esp + 0x108], 0
mov byte [esp + 0x109], 1
add esp, 0xd0
ret
mov dword [esp + 0xa8], edx
mov dword [esp + 0x74], eax
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.0049f5e0
movzx eax, byte [esp + 0x18]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
test al, al
je 0x49f4f9
mov dword [esp + 0xa4], edx
mov dword [esp + 0xcc], ecx
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
test ebx, ebx
je 0x49ee27
cmp byte [ebp], 0x2c
jne 0x49ee3c
mov esi, dword [esp + 0xa8]
add esi, 0xfffff1f0
xchg esi, ebx
neg ebx
xchg esi, ebx
jmp 0x49ee6d
mov dword [esp], ebp
mov dword [esp + 4], ebx
call fcn.0049f820
mov esi, dword [esp + 8]
mov ebp, dword [esp + 0xc]
movzx eax, byte [esp + 0x14]
mov ebx, dword [esp + 0x10]
xchg esi, ebx
neg ebx
xchg esi, ebx
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xa4]
test al, al
je 0x49f4f9
test ebx, ebx
jne 0x49ee84
mov ebx, 0xf
lea ebp, [0x4d8efd]
test ebx, ebx
jbe 0x49f5c1
mov dword [esp + 0xa8], esi
movzx eax, byte [ebp]
cmp al, 0x2c
je 0x49ef05
cmp al, 0x3b
je 0x49ef05
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov byte [esp + 0x108], 0
mov byte [esp + 0x109], 0
add esp, 0xd0
ret
lea ecx, [ebx - 1]
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 1
add ecx, ebp
mov dword [esp + 0xc8], ecx
lea edi, [esp + 0x4c]
xor eax, eax
call fcn.00474cdb
lea edi, [esp + 0x60]
call fcn.00474cdb
mov ecx, dword [esp + 0xc8]
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.0049fa60
movzx ecx, byte [esp + 0x24]
mov byte [esp + 0x2b], cl
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
lea edi, [esp + 0xac]
lea esi, [esp + 8]
call fcn.004751be
lea edi, [esp + 0x4c]
lea esi, [esp + 0xac]
call fcn.004751be
movzx ecx, byte [esp + 0x2b]
test cl, cl
je 0x49f495
test ebx, ebx
je 0x49f495
cmp byte [edx], 0x2c
jne 0x49f495
lea eax, [ebx - 1]
mov ecx, eax
neg eax
sar eax, 0x1f
and eax, 1
add eax, edx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0049fa60
movzx eax, byte [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xa0], ecx
lea edi, [esp + 0xac]
lea esi, [esp + 8]
call fcn.004751be
lea edi, [esp + 0x60]
lea esi, [esp + 0xac]
call fcn.004751be
test al, al
je 0x49f431
mov eax, dword [esp + 0xa0]
test eax, eax
jne 0x49f431
mov eax, dword [esp + 0xe4]
add eax, 0x1ad9c900
mov dword [esp], eax
mov eax, dword [esp + 0xe8]
adc eax, 0x7ffffffe
mov dword [esp + 4], eax
mov byte [esp + 8], 0
call fcn.004a1fc0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0xe4]
mov dword [esp], edx
mov edx, dword [esp + 0xe8]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x15180
mov dword [esp + 0xc], 0
call fcn.00467d90
mov eax, dword [esp + 0x38]
imul eax, eax, 0x15180
mov dword [esp + 0xa0], eax
sar eax, 0x1f
mov dword [esp + 0x9c], eax
mov edx, dword [esp + 0x10]
mov dword [esp + 0x98], edx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x94], ebx
mov ebp, dword [esp + 0x34]
mov dword [esp], ebp
call fcn.0049dfd0
mov eax, dword [esp + 4]
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x80], ecx
mov edx, dword [esp + 0x34]
mov dword [esp], edx
lea edi, [esp + 4]
lea esi, [esp + 0x4c]
call fcn.004751be
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x18], ecx
call fcn.0049ff70
mov eax, dword [esp + 0x7c]
mov ecx, 0x15180
mul ecx
mov dword [esp + 0x84], eax
mov dword [esp + 0x90], edx
mov ecx, dword [esp + 0x80]
imul ecx, ecx, 0x15180
mov dword [esp + 0x8c], ecx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x88], ebx
mov ebp, dword [esp + 0x34]
mov dword [esp], ebp
lea edi, [esp + 4]
lea esi, [esp + 0x60]
call fcn.004751be
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x18], ecx
call fcn.0049ff70
mov eax, dword [esp + 0x88]
mov ecx, eax
sar eax, 0x1f
mov edx, dword [esp + 0x1c]
mov ebx, edx
sar edx, 0x1f
mov ebp, dword [esp + 0x90]
mov esi, dword [esp + 0x8c]
add ebp, esi
mov dword [esp + 0x90], ebp
mov esi, dword [esp + 0x98]
mov edi, dword [esp + 0xa0]
add esi, edi
mov dword [esp + 0x2c], esi
mov edi, dword [esp + 0x94]
mov ebp, dword [esp + 0x9c]
adc edi, ebp
mov dword [esp + 0x30], edi
mov ebp, dword [esp + 0x84]
add ebp, 0xe5263700
mov dword [esp + 0x98], ebp
cmp edx, eax
xchg ebp, ebx
setl bl
xchg ebp, ebx
xchg esi, ebx
sete bl
xchg esi, ebx
cmp ebx, ecx
xchg edi, ebx
setb bl
xchg edi, ebx
and edi, esi
or ebp, edi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x49f1e9
mov esi, dword [esp + 0xa8]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x78], esi
mov esi, dword [esp + 0xc0]
mov dword [esp + 0xc4], esi
mov esi, dword [esp + 0xcc]
mov dword [esp + 0xc0], esi
mov esi, dword [esp + 0xa8]
jmp 0x49f22b
mov ecx, ebx
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0xcc]
mov dword [esp + 0xc4], ebx
mov ebx, dword [esp + 0x88]
mov ebx, edx
mov edx, eax
mov eax, ebx
mov ebx, dword [esp + 0x88]
xchg ebp, eax
mov byte [esp + 0x2a], al
xchg ebp, eax
mov dword [esp + 0x3c], esi
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], edi
mov ebp, dword [esp + 0x30]
cmp edx, ebp
setg dl
xchg esi, ebx
sete bl
xchg esi, ebx
mov edi, dword [esp + 0x2c]
cmp edi, ebx
setb bl
and ebx, esi
or edx, ebx
test dl, dl
jne 0x49f39c
cmp eax, ebp
setl dl
sete bl
cmp edi, ecx
xchg ebp, ebx
setae bl
xchg ebp, ebx
and ebp, ebx
or ebp, edx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x49f309
mov edx, dword [esp + 0xc0]
mov dword [esp + 0xec], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0xf0], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0xf4], edx
mov edx, dword [esp + 0x84]
add ecx, edx
mov ebx, dword [esp + 0x90]
adc eax, ebx
add ecx, 0xe5263700
mov dword [esp + 0xf8], ecx
adc eax, 0x80000001
mov dword [esp + 0xfc], eax
add edx, 0xe7076a80
mov dword [esp + 0x100], edx
adc ebx, 0x80000001
mov dword [esp + 0x104], ebx
movzx eax, byte [esp + 0x2a]
mov byte [esp + 0x108], al
mov byte [esp + 0x109], 1
add esp, 0xd0
ret
mov edx, dword [esp + 0xc4]
mov dword [esp + 0xec], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0xf0], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0xf4], edx
movzx edx, byte [esp + 0x2a]
xor edx, 1
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x84]
add ebx, ebp
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x48]
adc edi, esi
add ebx, 0xe5263700
mov dword [esp + 0xf8], ebx
adc edi, 0x80000001
mov dword [esp + 0xfc], edi
add ecx, ebp
adc eax, esi
add ecx, 0xe5263700
mov dword [esp + 0x100], ecx
adc eax, 0x80000001
mov dword [esp + 0x104], eax
mov byte [esp + 0x108], dl
mov byte [esp + 0x109], 1
add esp, 0xd0
ret
mov eax, dword [esp + 0x84]
mov ecx, eax
add eax, 0xe5263700
mov eax, dword [esp + 0x90]
mov edx, eax
adc eax, 0x80000001
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0xec], ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0xf0], ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0xf4], ebx
mov ebx, dword [esp + 0x98]
mov dword [esp + 0xf8], ebx
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0x44]
add eax, ecx
mov ecx, dword [esp + 0x48]
adc edx, ecx
add eax, 0xe5263700
mov dword [esp + 0x100], eax
adc edx, 0x80000001
mov dword [esp + 0x104], edx
movzx eax, byte [esp + 0x2a]
mov byte [esp + 0x108], al
mov byte [esp + 0x109], 1
add esp, 0xd0
ret
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov byte [esp + 0x108], 0
mov byte [esp + 0x109], 0
add esp, 0xd0
ret
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov byte [esp + 0x108], 0
mov byte [esp + 0x109], 0
add esp, 0xd0
ret
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov byte [esp + 0x108], 0
mov byte [esp + 0x109], 0
add esp, 0xd0
ret
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
mov byte [esp + 0x108], 0
mov byte [esp + 0x109], 0
add esp, 0xd0
ret
xor eax, eax
mov ecx, eax
call fcn.00474b20
nop
call fcn.004736a0
jmp fcn.0049ece0