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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x58
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x50], 0
mov dword [ecx], 0
mov dword [edx], 0
mov dword [esp + 0x54], 0
push eax
call fcn.0045bc40
add esp, 0x10
mov edi, eax
mov eax, dword [esp + 0x70]
or ah, 4
test ah, 1
mov ebp, 1
mov dword [esp + 0x3c], 0
jne 0x49985a
lea ebx, [edi + 1]
mov dword [esp + 0x3c], ebx
test ah, 2
mov dword [esp + 0x38], 0
jne 0x49986e
lea esi, [edi + 1]
mov dword [esp + 0x38], esi
test ah, 4
mov dword [esp + 0x34], 0
jne 0x499882
lea eax, [edi + 1]
mov dword [esp + 0x34], eax
cmp edi, 1
je 0x499941
lea edx, [edi - 2]
test edx, edx
mov dword [esp + 0xc], edx
mov esi, edx
js 0x499c58
lea esi, [esi]
sub esp, 8
push esi
mov ecx, dword [esp + 0x74]
push ecx
call fcn.0045bc50
add esp, 0xc
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
mov ebx, eax
call fcn.0046bab0
mov dword [esp], ebx
call fcn.0049db40
add esp, 0x10
test eax, eax
je 0x499c4c
mov edx, dword [ebx + 0x28]
test dh, 4
je 0x499bd8
mov ebp, 0xffffffff
mov ecx, dword [esp + 0x3c]
test ecx, ecx
jle 0x499910
dec dword [esp + 0x3c]
and edx, 0x20
jne 0x499910
mov eax, dword [eax + 0x10]
cmp eax, 0xffffffff
je 0x499910
cmp eax, dword [esp + 0x3c]
jge 0x499910
mov dword [esp + 0x3c], eax
lea esi, [esi]
lea edi, [edi]
dec esi
jns 0x4998a0
cmp ebp, 1
je 0x499c58
cmp ebp, 2
je 0x49a06b
cmp ebp, 2
mov edx, 1
je 0x499c4e
jg 0x49a045
test ebp, ebp
je 0x499c4c
mov edi, dword [esp + 0x48]
mov eax, dword [edi]
lea edx, [eax + 0x10]
cmp dword [edi + 4], 1
mov dword [esp + 0x30], edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], 1
jle 0x499b70
mov edi, eax
sub esp, 0xc
mov eax, dword [edi + 0x10]
push eax
call fcn.0049db40
add esp, 0x10
mov dword [esp + 0x24], eax
xor esi, esi
sub esp, 0xc
mov ebp, dword [esp + 0x30]
mov eax, dword [ebp + 4]
push eax
call fcn.0045bc40
add esp, 0x10
cmp eax, esi
jle 0x4999e1
lea esi, [esi]
lea edi, [edi]
sub esp, 8
push esi
mov ebx, dword [esp + 0x30]
mov ebp, dword [ebx + 4]
push ebp
call fcn.0045bc50
add esp, 0x10
test byte [eax], 2
mov ebx, eax
je 0x499c00
test byte [edi + 0x1d], 2
jne 0x499c00
inc esi
sub esp, 0xc
mov ebp, dword [esp + 0x30]
mov eax, dword [ebp + 4]
push eax
call fcn.0045bc40
add esp, 0x10
cmp eax, esi
jg 0x4999a0
xor ebp, ebp
test byte [edi + 0x1d], 2
jne 0x499a5a
sub esp, 0xc
mov esi, dword [edi + 4]
push esi
call fcn.0045bc40
add esp, 0x10
cmp eax, ebp
jle 0x499a31
lea esi, [esi]
sub esp, 8
push ebp
mov ebx, dword [edi + 4]
push ebx
call fcn.0045bc50
mov esi, dword [eax + 8]
add esp, 0x10
test esi, esi
mov ebx, eax
je 0x499db0
sub esp, 0xc
mov esi, dword [edi + 4]
push esi
call fcn.0045bc40
inc ebp
add esp, 0x10
cmp eax, ebp
jg 0x499a00
mov ebp, dword [edi + 8]
test ebp, ebp
je 0x499a5a
push 0
mov ecx, dword [edi + 8]
push ecx
mov eax, dword [esp + 0x2c]
mov edx, dword [eax]
push edx
mov ebx, dword [esp + 0x34]
push ebx
call fcn.004cfda0
add esp, 0x10
test eax, eax
je 0x499bbc
mov esi, dword [esp + 0x28]
mov ebp, dword [edi + 0x14]
sub esp, 0xc
push ebp
call fcn.0045bc40
mov ebx, eax
add esp, 0x10
dec ebx
js 0x499ab0
sub esp, 8
push ebx
mov edx, dword [edi + 0x14]
push edx
call fcn.0045bc50
mov edx, eax
mov eax, dword [eax]
add esp, 0x10
test byte [eax], 3
je 0x499a6f
mov ebp, dword [edx + 4]
sub esp, 0xc
dec dword [ebp + 8]
push edx
call fcn.00458e30
pop eax
pop edx
push ebx
mov ecx, dword [edi + 0x14]
push ecx
call fcn.0045b920
add esp, 0x10
dec ebx
jns 0x499a72
lea esi, [esi]
sub esi, 0x10
sub esp, 0xc
mov ebx, dword [esi + 4]
push ebx
call fcn.0045bc40
mov ebx, eax
add esp, 0x10
lea esi, [esi]
lea edi, [edi]
dec ebx
js 0x499b10
sub esp, 8
push ebx
mov edx, dword [esi + 4]
push edx
call fcn.0045bc50
mov edx, eax
mov eax, dword [eax + 8]
add esp, 0x10
test eax, eax
jne 0x499ad0
mov ebp, dword [edx + 4]
sub esp, 0xc
dec dword [ebp + 8]
push edx
call fcn.00458e30
pop ebp
pop eax
push ebx
mov ecx, dword [esi + 4]
push ecx
call fcn.0045b920
add esp, 0x10
dec ebx
jns 0x499ad3
lea esi, [esi]
mov eax, dword [esi + 8]
test eax, eax
je 0x499b40
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x499b40
mov eax, dword [eax + 4]
test eax, eax
je 0x499b28
dec dword [eax + 8]
sub esp, 0xc
mov eax, dword [esi + 8]
push eax
call fcn.00458e30
add esp, 0x10
mov dword [esi + 8], 0
mov esi, esi
mov edx, dword [esp + 0x30]
cmp dword [edx], esi
jne 0x499ab0
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x49a185
inc dword [esp + 0x2c]
mov esi, dword [esp + 0x2c]
add dword [esp + 0x28], 0x10
add edi, 0x10
cmp dword [edx + 4], esi
jg 0x499966
mov edi, dword [esp + 0x48]
mov dword [esp + 0x20], edi
mov ecx, dword [edi + 4]
mov eax, ecx
mov esi, dword [esp + 0x20]
shl eax, 4
mov edx, dword [esi]
mov ebx, dword [eax + edx - 8]
test ebx, ebx
je 0x499e5a
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x20]
mov ecx, dword [edx + 0xc]
add esi, 0xc
test ecx, ecx
jne 0x49a079
call fcn.004cfcd0
test eax, eax
mov ebp, dword [esp + 0x20]
mov dword [ebp + 0xc], eax
jne 0x49a0a6
sub esp, 0xc
mov esi, dword [esp + 0x54]
push esi
call fcn.00499700
add esp, 0x10
add esp, 0x4c
pop ebx
pop esi
xor edx, edx
pop edi
mov eax, edx
pop ebp
ret
cmp ebp, 1
jne 0x4998e1
mov ebx, dword [eax + 4]
test ebx, ebx
jne 0x4998e1
mov bp, 2
jmp 0x4998e1
sub esp, 8
mov ecx, dword [ebx + 4]
push ecx
push edi
call fcn.004cfd40
add esp, 0x10
test eax, eax
je 0x499c2f
push 0
push eax
push ebx
mov edx, dword [esp + 0x34]
push edx
call fcn.004cfda0
add esp, 0x10
test eax, eax
je 0x499bbc
inc esi
jmp 0x4999ca
mov eax, dword [edi + 8]
test eax, eax
jne 0x499c14
inc esi
jmp 0x4999ca
sub esp, 0xc
mov esi, dword [esp + 0x4c]
push esi
call fcn.00499700
add esp, 0x10
xor edx, edx
add esp, 0x4c
pop ebx
pop esi
pop edi
mov eax, edx
pop ebp
ret
push eax
push 0x97
push 0x523980
push 0x18
call fcn.00458b20
add esp, 0x10
test eax, eax
mov dword [esp + 0x40], eax
je 0x499c4c
mov dword [eax + 0x14], 0
push ebp
push 0x9d
mov ebp, edi
push 0x523980
shl ebp, 4
push ebp
call fcn.00458b20
add esp, 0xc
mov esi, dword [esp + 0x44]
mov dword [esi], eax
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
push ebp
push 0
push eax
call fcn.004f3870
add esp, 0xc
mov ebx, dword [esp + 0x44]
mov dword [ebx + 4], edi
mov esi, dword [ebx]
push 0
push edi
push 0x2ea
call fcn.00469ff0
pop edx
pop ecx
push eax
push 0
call fcn.004cff20
add esp, 0x10
test eax, eax
je 0x499c3c
push ebx
push 0
push eax
push esi
call fcn.004cfda0
add esp, 0x10
test eax, eax
je 0x499c3c
mov ebp, dword [esp + 0xc]
test ebp, ebp
js 0x499d87
sub esp, 8
push ebp
mov ebx, dword [esp + 0x74]
push ebx
call fcn.0045bc50
mov dword [esp], eax
mov ebx, eax
call fcn.0049db40
mov dword [esp], 0xbc
push 0x523980
push 3
push 1
lea edx, [ebx + 0x10]
mov edi, eax
push edx
call fcn.0046fc50
mov eax, dword [edi]
add esi, 0x10
add esp, 0x20
test eax, eax
mov dword [esi], ebx
jne 0x499d53
or dword [esi + 0xc], 0x200
mov ecx, dword [esp + 0x38]
test ecx, ecx
jne 0x499e0e
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x499d6a
test ebp, ebp
jne 0x499d71
or dword [esi + 0xc], 0x200
mov edx, dword [esp + 0x34]
test edx, edx
jne 0x499e37
or dword [esi + 0xc], 0x400
dec ebp
jns 0x499d0b
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x40]
test edi, edi
mov dword [esp + 0x48], ebp
jne 0x499941
mov ecx, dword [esp + 0x64]
mov dword [ecx], 1
jmp 0x499941
push edx
mov esi, dword [eax]
mov eax, dword [esi]
and eax, 0x10
push eax
mov edx, dword [ebx]
mov ecx, dword [edx + 4]
push ecx
push 0
call fcn.004cff20
add esp, 0x10
test eax, eax
mov esi, eax
je 0x499bbc
mov ecx, dword [edi + 0x18]
mov eax, dword [ecx]
mov edx, dword [eax + 8]
mov ecx, dword [esp + 0x30]
or dword [esi], 4
mov dword [esi + 8], edx
push ecx
push ebx
push esi
mov ebx, dword [esp + 0x34]
push ebx
call fcn.004cfda0
add esp, 0x10
test eax, eax
jne 0x499a1d
sub esp, 0xc
push esi
call fcn.004cfea0
add esp, 0x10
jmp 0x499bbc
mov eax, dword [edi + 0xc]
dec dword [esp + 0x38]
test eax, eax
jle 0x499d71
cmp eax, dword [esp + 0x38]
jge 0x499d71
mov edx, dword [esp + 0x34]
test edx, edx
mov dword [esp + 0x38], eax
je 0x499d7d
mov eax, dword [edi + 0x14]
dec dword [esp + 0x34]
test eax, eax
jle 0x499d84
cmp eax, dword [esp + 0x34]
jge 0x499d84
dec ebp
mov dword [esp + 0x34], eax
jmp 0x499d85
mov ebp, dword [esp + 0x20]
add ebp, 0xc
mov dword [esp + 0x1c], ebp
cmp ecx, 1
mov edi, edx
mov dword [esp + 0x18], 1
jle 0x499ee0
mov ebp, dword [edi + 8]
test ebp, ebp
je 0x499ee0
add edi, 0x10
xor esi, esi
sub esp, 0xc
mov eax, dword [edi + 4]
push eax
call fcn.0045bc40
add esp, 0x10
cmp eax, esi
jle 0x499ecf
lea esi, [esi]
lea edi, [edi]
sub esp, 8
push esi
mov edx, dword [edi + 4]
push edx
call fcn.0045bc50
add esp, 0x10
cmp dword [eax + 4], ebp
mov ebx, eax
je 0x499feb
inc esi
sub esp, 0xc
mov eax, dword [edi + 4]
push eax
call fcn.0045bc40
add esp, 0x10
cmp eax, esi
jg 0x499ea0
inc dword [esp + 0x18]
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
cmp dword [ebp + 4], esi
jg 0x499e74
lea edi, [esp + 0x44]
cmp dword [esp + 0x1c], edi
mov dword [esp + 8], 2
je 0x499f05
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0xc]
mov dword [esp + 0x44], ecx
mov dword [esp + 8], 1
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x14], eax
sub esp, 0xc
mov ebx, dword [esp + 0x78]
push ebx
call fcn.0045bc40
add esp, 0x10
test eax, eax
jle 0x49a11a
mov ebp, dword [edi + 4]
shl ebp, 4
add ebp, dword [edi]
mov esi, dword [ebp - 8]
mov dword [esp + 0x10], esi
xor ebx, ebx
jmp 0x499f61
sub esp, 8
push ebx
mov ecx, dword [esp + 0x78]
push ecx
call fcn.0045bc50
mov dword [esp], eax
call fcn.0046a800
add esp, 0x10
cmp eax, 0x2ea
je 0x49a116
inc ebx
sub esp, 0xc
mov edx, dword [esp + 0x78]
push edx
call fcn.0045bc40
add esp, 0x10
cmp eax, ebx
jg 0x499f3c
xor ebp, ebp
sub esp, 0xc
mov ecx, dword [esp + 0x78]
push ecx
call fcn.0045bc40
add esp, 0x10
cmp eax, ebp
jle 0x49a11a
sub esp, 8
push ebp
mov eax, dword [esp + 0x78]
push eax
call fcn.0045bc50
pop ecx
pop ebx
push eax
mov ebx, dword [esp + 0x20]
push ebx
mov esi, eax
call fcn.004cfcf0
add esp, 0x10
test eax, eax
mov ebx, eax
je 0x49a0bf
mov edx, dword [edi + 0x10]
test edx, edx
jne 0x499fd0
call fcn.0045b6d0
test eax, eax
mov dword [edi + 0x10], eax
je 0x49a11a
sub esp, 8
push ebx
mov esi, dword [edi + 0x10]
push esi
call fcn.0045b9e0
add esp, 0x10
test eax, eax
je 0x499bbc
inc ebp
jmp 0x499f77
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
test eax, eax
jne 0x49a029
call fcn.004cfcd0
test eax, eax
mov edx, dword [esp + 0x1c]
mov dword [edx], eax
je 0x499bbc
sub esp, 8
push ebx
mov ebx, dword [esp + 0x28]
mov edx, dword [ebx]
push edx
call fcn.0045b9e0
add esp, 0x10
test eax, eax
je 0x499bbc
inc esi
jmp 0x499ebc
sub esp, 8
push ebx
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx]
push eax
call fcn.0045bdc0
add esp, 0x10
inc eax
je 0x49a008
inc esi
jmp 0x499ebc
cmp ebp, 5
je 0x499d9b
cmp ebp, 6
jne 0x499941
mov ebx, dword [esp + 0x64]
mov edx, 0xfffffffe
mov dword [ebx], 1
jmp 0x499c4e
mov edi, dword [esp + 0x3c]
test edi, edi
jne 0x499925
jmp 0x49a057
sub esp, 8
push ebx
mov edi, dword [esp + 0x2c]
mov eax, dword [edi + 0xc]
push eax
call fcn.0045bdc0
add esp, 0x10
inc eax
je 0x49a0a6
lea ecx, [esp + 0x44]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
mov edx, dword [esi]
mov ecx, dword [esi + 4]
jmp 0x499e65
sub esp, 8
push ebx
mov ebx, dword [esi]
push ebx
call fcn.0045b9e0
add esp, 0x10
test eax, eax
je 0x499bbc
jmp 0x49a090
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x499fe8
push eax
mov eax, dword [esp + 0x14]
mov ebx, dword [eax]
mov edx, dword [ebx]
and edx, 0x10
push edx
push esi
push 0
call fcn.004cff20
add esp, 0x10
test eax, eax
mov edx, eax
je 0x499bbc
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
mov ebx, dword [eax + 8]
mov dword [edx + 8], ebx
mov dword [edx], 0xc
push edi
mov esi, dword [ecx + 4]
push esi
push edx
push 0
call fcn.004cfda0
mov ebx, eax
add esp, 0x10
jmp 0x499fb9
or dword [edi + 0x14], 2
cmp dword [esp + 8], 2
je 0x49a173
mov eax, dword [esp + 0x48]
test eax, eax
je 0x49a130
mov ebp, dword [esp + 0x60]
mov dword [ebp], eax
mov eax, dword [esp + 0x64]
mov ebx, dword [eax]
test ebx, ebx
jne 0x49a144
mov edx, 1
jmp 0x499c4e
sub esp, 0xc
mov edx, dword [esp + 0x54]
push edx
call fcn.004cfbb0
mov dword [esp], eax
call fcn.0045bc40
add esp, 0x10
test eax, eax
mov edx, 0xfffffffe
jle 0x499c4e
mov edx, 1
jmp 0x499c4e
sub esp, 0xc
mov edi, dword [esp + 0x50]
push edi
call fcn.0045b5f0
add esp, 0x10
jmp 0x49a121
sub esp, 0xc
mov ebx, dword [esp + 0x54]
push ebx
call fcn.00499700
add esp, 0x10
mov ebp, dword [esp + 0x64]
mov edx, dword [ebp]
cmp edx, 1
sbb edi, edi
and edi, 3
lea edx, [edi - 2]
jmp 0x499c4e