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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x60b8ef
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x88
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
lea ecx, [esi + 0xfc]
mov dword [esp + 0x28], edi
call fcn.00414b5f
mov ebx, eax
push 0
lea eax, [edi + 0xf4]
push eax
mov dword [esp + 0x20], ebx
call fcn.0042ac72
mov eax, dword [edi + 0x2c]
test eax, eax
jne 0x49a1b8
mov eax, dword [0x6a677c]
jmp 0x49a1cc
cmp eax, dword [0x6a677c]
jne 0x49a1cc
push 0
push 1
push esi
mov ecx, edi
call fcn.00420f6d
and dword [esp + 0x20], 0
push eax
lea ecx, [esp + 0x24]
call fcn.0046458f
and dword [esp + 0x9c], 0
mov eax, dword [ebx]
push dword [esp + 0x20]
mov ecx, esi
mov dword [esp + 0x54], eax
call fcn.00456a2b
push eax
mov eax, dword [esp + 0x54]
mov ecx, ebx
call dword [eax + 0xc]
mov edx, dword [ebx]
lea eax, [edi + 0xa8]
push eax
lea esi, [edi + 0xac]
push esi
mov ecx, ebx
call dword [edx + 0x1c]
mov eax, dword [esp + 0x20]
add eax, 0x24
cmp dword [eax], 0
mov ebx, 0x80000000
jbe 0x49a28f
mov ecx, dword [esi]
mov eax, ecx
sub eax, ebx
neg eax
sbb eax, eax
and eax, ecx
push eax
mov eax, dword [esp + 0x24]
sub esp, 0x10
add eax, 0xc
mov ecx, esp
mov dword [esp + 0x84], esp
push eax
call fcn.0040bc12
mov ecx, dword [esp + 0x34]
add ecx, 0x24
call fcn.0045a775
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0xa8]
mov ecx, eax
sub ecx, ebx
neg ecx
sbb ecx, ecx
and ecx, eax
mov eax, dword [esi]
mov edx, eax
sub edx, ebx
neg edx
sbb edx, edx
and edx, eax
mov eax, dword [esp + 0x3c]
sub eax, edx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov dword [edi + 0xa8], eax
mov eax, dword [esp + 0x3c]
mov dword [esi], eax
mov eax, dword [edi]
lea ecx, [esp + 0x78]
push ecx
mov ecx, edi
call dword [eax + 0x4c]
mov esi, dword [esp + 0x78]
mov eax, 0xfffffff
mov dword [esp + 0x10], esi
cmp dword [esp + 0x7c], eax
ja 0x49a2b2
mov eax, dword [esp + 0x7c]
lea eax, [esi + eax*2]
mov dword [esp + 0x30], eax
xor eax, eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x20]
add eax, 8
call fcn.00499853
push dword [edi + 0x74]
mov byte [esp + 0x2b], al
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x38]
push dword [edi + 0x70]
mov eax, ecx
sub eax, ebx
neg eax
sbb eax, eax
and eax, ecx
cmp eax, 1
push 0
sete byte [esp + 0x22]
and dword [esp + 0x44], 0
push 0x20000000
mov byte [esp + 0x27], 1
call fcn.0040ada5
add esp, 0x10
cmp word [esi], 0xa
mov byte [esp + 0xf], al
jne 0x49a320
add esi, 2
mov dword [esp + 0x10], esi
cmp esi, dword [esp + 0x30]
jae 0x49a493
mov esi, dword [esp + 0x10]
xor eax, eax
mov word [esp + 0x60], ax
mov word [esp + 0x62], ax
mov word [esp + 0x64], ax
mov word [esp + 0x66], ax
mov word [esp + 0x68], ax
lea eax, [esp + 0xf]
push eax
push dword [esp + 0x34]
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], esi
call fcn.00499ed6
cmp byte [esp + 0x1e], 0
pop ecx
pop ecx
mov dword [esp + 0x5c], eax
je 0x49a3d1
mov eax, dword [ebp + 0x10]
mov esi, dword [eax + 0x88]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
push eax
push dword [esp + 0x14]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x88]
push eax
call dword [edx + 0x24]
cmp dword [eax], esi
jge 0x49a39d
mov eax, dword [esp + 0x5c]
jmp 0x49a3cd
cmp dword [esp + 0x5c], 1
jbe 0x49a3c9
dec dword [esp + 0x1c]
push dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
push dword [esp + 0x14]
mov eax, dword [ecx]
lea edx, [esp + 0x78]
push edx
call dword [eax + 0x24]
cmp dword [eax], esi
jl 0x49a3c9
cmp dword [esp + 0x1c], 1
ja 0x49a3a4
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x5c], eax
xor eax, eax
cmp byte [esp + 0xf], al
mov edx, 0x18ff
setne al
shl eax, 0x1f
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
movzx ecx, ax
add ecx, 0x2000
cmp cx, dx
ja 0x49a449
mov edx, edi
call fcn.004999a1
mov esi, eax
test esi, esi
je 0x49a485
push dword [ebp + 8]
call fcn.00415707
test al, al
je 0x49a421
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x5c]
lea eax, [eax + ecx*2]
jmp 0x49a481
push dword [ebp + 8]
call fcn.00499f7d
pop ecx
test al, al
je 0x49a445
push dword [ebp + 0x10]
mov ecx, esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0049a15e
add dword [esp + 0x10], 2
jmp 0x49a485
mov dword [esp + 0x54], esi
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
test eax, eax
je 0x49a457
mov esi, dword [eax - 4]
jmp 0x49a459
xor esi, esi
lea eax, [esi + 1]
push eax
push ecx
call fcn.0042ab6b
mov ecx, dword [ebp + 0xc]
mov eax, esi
imul eax, eax, 0x1c
add eax, dword [ecx]
lea ecx, [esp + 0x54]
call fcn.00413386
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x10]
lea eax, [ecx + eax*2]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x30]
jb 0x49a32a
mov eax, dword [ebp + 0xc]
lea ecx, [edi + 0xf0]
cmp eax, ecx
jne 0x49a9ea
mov eax, dword [eax]
xor esi, esi
cmp eax, esi
je 0x49a4b5
mov eax, dword [eax - 4]
mov dword [esp + 0x30], eax
jmp 0x49a4b9
mov dword [esp + 0x30], esi
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x2c], edi
cmp eax, esi
jne 0x49a4cb
mov eax, dword [0x6a677c]
jmp 0x49a4e0
cmp eax, dword [0x6a677c]
jne 0x49a4e0
push esi
push 1
push dword [ebp + 8]
mov ecx, edi
call fcn.00420f6d
push eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], esi
call fcn.0046458f
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 8]
mov byte [esp + 0x9c], 1
push dword [esp + 0x20]
mov esi, dword [eax]
call fcn.00456a2b
mov ecx, dword [esp + 0x18]
push eax
call dword [esi + 0xc]
xor eax, eax
cmp dword [esp + 0x30], eax
mov dword [edi + 0xe4], eax
mov dword [esp + 0x44], eax
jle 0x49a9a9
and dword [esp + 0x3c], eax
mov ecx, dword [ebp + 0xc]
mov edi, dword [ecx]
mov edx, dword [esp + 0x3c]
add edi, edx
xor eax, eax
mov word [edi + 0x10], ax
mov eax, dword [edi + 4]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 8]
test eax, eax
je 0x49a552
mov esi, dword [edi + 4]
lea eax, [esi + eax*2 - 2]
jmp 0x49a557
mov eax, 0x6a64ec
movzx eax, word [eax]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x30]
dec eax
cmp dword [esp + 0x44], eax
jge 0x49a588
mov eax, dword [ecx]
lea eax, [edx + eax + 0x1c]
cmp dword [eax + 8], 0
jbe 0x49a57a
mov eax, dword [eax + 4]
jmp 0x49a57f
mov eax, 0x6a64ec
movzx eax, word [eax]
mov dword [esp + 0x50], eax
jmp 0x49a58d
and dword [esp + 0x50], 0
mov eax, dword [edi + 0x18]
xor eax, dword [esp + 0x44]
and eax, 0x7fffffff
xor dword [edi + 0x18], eax
test dword [edi + 0x18], ebx
je 0x49a5af
mov eax, dword [esp + 0x28]
mov dword [eax + 0xe4], 1
mov eax, dword [edi]
mov byte [esp + 0xf], 0
cmp dword [esp + 0x2c], eax
je 0x49a6b3
mov edx, dword [eax + 0x2c]
mov dword [esp + 0x2c], eax
test edx, edx
jne 0x49a5d2
mov eax, dword [0x6a677c]
jmp 0x49a5ec
cmp edx, dword [0x6a677c]
jne 0x49a5ea
push 0
push 1
push dword [ebp + 8]
mov ecx, eax
call fcn.00420f6d
jmp 0x49a5ec
mov eax, edx
and dword [esp + 0x48], 0
push eax
lea ecx, [esp + 0x4c]
call fcn.0046458f
mov byte [esp + 0x9c], 2
push dword [esp + 0x48]
lea ecx, [esp + 0x20]
call fcn.0046458f
push 0
lea ecx, [esp + 0x4c]
mov byte [esp + 0xa0], 1
call fcn.0046458f
mov eax, dword [esp + 0x18]
push dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
mov esi, dword [eax]
call fcn.00456a2b
mov ecx, dword [esp + 0x18]
push eax
call dword [esi + 0xc]
push dword [esp + 0x28]
mov esi, dword [esp + 0x30]
push dword [ebp + 8]
mov eax, esi
call fcn.0049a00b
push dword [ebp + 8]
mov byte [esp + 0x33], al
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x38]
mov eax, ecx
sub eax, ebx
neg eax
sbb eax, eax
and eax, ecx
cmp eax, 1
sete byte [esp + 0x22]
call fcn.00499f7d
add esp, 0xc
test al, al
je 0x49a68f
mov eax, dword [esp + 0x18]
push dword [ebp + 8]
mov ecx, dword [esp + 0x30]
mov esi, dword [eax]
call fcn.00415c84
jmp 0x49a6ab
mov esi, dword [esp + 0x2c]
cmp esi, dword [esp + 0x28]
jne 0x49a6cf
mov eax, dword [esp + 0x18]
push dword [esp + 0x20]
mov ecx, dword [ebp + 8]
mov esi, dword [eax]
call fcn.00456a2b
mov ecx, dword [esp + 0x18]
push eax
call dword [esi + 0xc]
cmp dword [edi + 8], 1
jne 0x49a883
cmp dword [edi + 8], 0
jbe 0x49a7ae
mov eax, dword [edi + 4]
jmp 0x49a7b3
cmp dword [esi + 0x20], 0
mov byte [esp + 0xf], 1
jne 0x49a6ef
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
lea edx, [esp + 0x80]
push edx
call dword [eax + 0xa0]
jmp 0x49a6fd
lea eax, [esp + 0x80]
mov ecx, esi
call fcn.00416593
mov eax, dword [esi]
push 0
push 0
push dword [ebp + 8]
mov ecx, esi
call dword [eax + 0x118]
mov ecx, esi
call fcn.004125d1
test al, al
je 0x49a720
xor eax, eax
jmp 0x49a923
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1d0]
test eax, eax
jne 0x49a77b
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x64]
add eax, dword [ecx + 0x54]
mov esi, dword [ecx + 0x5c]
add eax, dword [ecx + 0x44]
add esi, dword [ecx + 0x4c]
push dword [ebp + 8]
add esi, dword [ecx + 0x3c]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx]
call dword [eax + 0x2f0]
add eax, esi
add eax, dword [esp + 0x48]
mov word [edi + 0x10], ax
mov eax, dword [esp + 0x2c]
test byte [eax + 0xe0], 0x10
jne 0x49a927
and dword [eax + 0x78], 0
and dword [eax + 0x7c], 0
jmp 0x49a927
mov eax, dword [esp + 0x40]
cmp eax, dword [esi + 0x88]
jge 0x49a798
push dword [ebp + 8]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x314]
mov dword [esp + 0x40], eax
push dword [ebp + 8]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x320]
add dword [esp + 0x34], eax
jmp 0x49a984
mov eax, 0x6a64ec
mov cx, word [eax]
call fcn.00499644
cmp eax, 0xa
sete al
test al, al
je 0x49a883
mov eax, dword [esp + 0x10]
movzx eax, word [eax]
sub eax, 0x2004
je 0x49a869
dec eax
je 0x49a84f
dec eax
je 0x49a835
dec eax
je 0x49a815
dec eax
dec eax
je 0x49a7f5
dec eax
dec eax
jne 0x49a927
jmp 0x49a719
mov eax, dword [esp + 0x28]
add eax, 0xac
mov ecx, dword [eax]
mov eax, ecx
sub eax, ebx
neg eax
sbb eax, eax
and eax, ecx
push 0x12
cdq
pop ecx
idiv ecx
jmp 0x49a923
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx]
push 1
push 0x6463f8
lea edx, [esp + 0x90]
push edx
call dword [eax + 0x24]
mov ax, word [eax]
jmp 0x49a923
mov eax, dword [esp + 0x28]
add eax, 0xac
mov ecx, dword [eax]
mov eax, ecx
sub eax, ebx
neg eax
sbb eax, eax
and eax, ecx
imul eax, eax, 3
jmp 0x49a80a
mov eax, dword [esp + 0x28]
add eax, 0xac
mov ecx, dword [eax]
mov eax, ecx
sub eax, ebx
neg eax
sbb eax, eax
and eax, ecx
shl eax, 2
jmp 0x49a80a
mov eax, dword [esp + 0x28]
add eax, 0xac
mov ecx, dword [eax]
mov eax, ecx
sub eax, ebx
neg eax
sbb eax, eax
and eax, ecx
imul eax, eax, 5
jmp 0x49a80a
mov esi, dword [esp + 0x10]
movzx eax, word [esi]
cmp ax, 0xd
jne 0x49a8b3
xor eax, eax
mov word [edi + 0x10], ax
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x34]
jle 0x49a8a4
mov dword [esp + 0x34], eax
and dword [esp + 0x4c], 0
and dword [esp + 0x38], 0
jmp 0x49a984
mov ecx, 0xad
cmp ax, cx
je 0x49a719
cmp ax, 0xa
jne 0x49a8d0
push 1
push 0x642210
jmp 0x49a91a
mov ecx, dword [edi]
cmp ecx, dword [esp + 0x28]
je 0x49a8e5
mov eax, dword [ecx]
call dword [eax + 0x3dc]
cmp eax, 1
jne 0x49a916
mov ecx, dword [edi + 4]
mov eax, dword [edi + 8]
jmp 0x49a8f8
mov dx, word [ecx]
inc ecx
inc ecx
cmp dx, 0x20
ja 0x49a916
dec eax
jns 0x49a8ed
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x34]
cmp ecx, ebx
je 0x49a90b
cmp ecx, 2
je 0x49a916
mov eax, ecx
cmp eax, ebx
je 0x49a8c7
cmp eax, 3
jne 0x49a8c7
push dword [edi + 8]
push esi
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
call dword [eax + 0x30]
mov word [edi + 0x10], ax
cmp byte [esp + 0x17], 0
movzx eax, word [edi + 0x10]
mov word [edi + 0xe], ax
movzx eax, ax
je 0x49a93f
mov dword [esp + 0x38], eax
jmp 0x49a943
add dword [esp + 0x38], eax
mov ecx, dword [esp + 0x38]
cmp dword [esp + 0x40], ecx
jge 0x49a951
mov dword [esp + 0x40], ecx
add dword [esp + 0x4c], eax
cmp byte [esp + 0xf], 0
jne 0x49a973
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x70]
call fcn.00499dee
test al, al
jne 0x49a973
cmp byte [esp + 0x16], al
je 0x49a97f
cmp byte [esp + 0x27], 0
mov byte [esp + 0x17], 1
jne 0x49a984
mov byte [esp + 0x17], 0
inc dword [esp + 0x44]
mov eax, dword [esp + 0x44]
add dword [esp + 0x3c], 0x1c
cmp eax, dword [esp + 0x30]
jl 0x49a52a
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x34]
jle 0x49a9a9
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x38]
mov eax, ecx
sub eax, ebx
neg eax
sbb eax, eax
and eax, ecx
mov ecx, dword [esp + 0x28]
dec eax
neg eax
sbb eax, eax
and eax, dword [esp + 0x40]
push 0
mov dword [ecx + 0xb0], eax
mov eax, dword [esp + 0x38]
mov dword [ecx + 0xb4], eax
lea ecx, [esp + 0x20]
mov byte [esp + 0xa0], 0
call fcn.0046458f
or dword [esp + 0x9c], 0xffffffff
push 0
lea ecx, [esp + 0x24]
call fcn.0046458f
mov ecx, dword [esp + 0x94]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc