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

Disassembly:
push ebp
lea ebp, [esp - 0x74]
sub esp, 0x18c
push ebx
push esi
mov esi, ecx
push edi
lea ecx, [ebp - 0xc8]
mov dword [ebp + 0x68], esi
call fcn.0040dd80
mov eax, dword [esi + 8]
mov edx, dword [esi + 4]
mov dl, byte [eax + edx]
lea ecx, [esi + 4]
inc eax
mov dword [ecx + 4], eax
movzx eax, dl
mov dword [ebp + 0x14], eax
mov al, byte [ebp + 0x7c]
test al, al
jne 0x4975ce
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
mov dl, byte [eax + edx]
inc eax
mov dword [ecx + 4], eax
xor eax, eax
mov ah, dl
or dword [ebp + 0x14], eax
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
add eax, edx
add edx, 2
mov dword [ecx + 4], edx
xor edx, edx
mov dh, byte [eax + 1]
mov dl, byte [eax]
mov eax, dword [ebp + 0x14]
test ah, 8
mov dword [ebp + 0x1c], esi
mov dword [ebp + 0x20], edx
je 0x497781
mov eax, dword [esi + 0xd0]
mov edi, dword [eax + 0x20]
xor ebx, ebx
mov dword [ebp + 0x70], ebx
mov dword [ebp + 0x6c], edi
call fcn.00492750
mov ecx, dword [esi + 0x2c]
mov edx, dword [ecx + 0x238]
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x64], edx
call fcn.00492e50
push edi
lea ecx, [ebp - 0x118]
mov dword [ebp + 0x5c], eax
mov dword [ebp - 0x118], ebx
call fcn.005874c5
lea eax, [ebp - 0x10c]
push ebx
push eax
call fcn.005885e5
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x4976a7
mov ebx, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x6c]
push ebx
call fcn.00582d20
mov ecx, dword [ebp + 0x64]
mov edi, dword [ebp + 0x5c]
push eax
push ecx
mov ecx, edi
call fcn.00544810
push ebx
mov esi, eax
call fcn.0043f0a0
add esp, 4
test esi, esi
je 0x497690
mov edx, dword [esi + 8]
mov eax, dword [edx + 0x18]
mov eax, dword [eax + 0x24]
mov ecx, dword [edi + 0x48]
push 0xffffffffffffffff
push eax
call fcn.00543860
mov edi, eax
mov dword [ebp + 0x70], edi
xor ebx, ebx
jmp 0x4976be
lea ecx, [ebp - 0x118]
call fcn.00587500
pop edi
pop esi
pop ebx
add ebp, 0x74
mov esp, ebp
pop ebp
ret 4
lea ecx, [ebp - 0x118]
call fcn.00587529
mov ecx, dword [ebp + 0x6c]
push esi
call fcn.00540500
mov edi, dword [ebp + 0x70]
lea ecx, [ebp - 0x118]
call fcn.00587500
cmp edi, ebx
je 0x497ab1
mov eax, dword [ebp + 0x14]
test ah, 0x10
je 0x497776
cmp dword [edi + 0x78], 1
jne 0x497ab1
push 0x80
call fcn.0043f080
mov esi, dword [ebp + 0x68]
add esp, 4
cmp eax, ebx
je 0x497717
mov ecx, dword [esi + 0x2c]
push 0xff
push 0xc
push 0xfff4
push ecx
mov ecx, eax
call fcn.00481140
mov dword [ebp + 0x18], eax
jmp 0x49771a
mov dword [ebp + 0x18], ebx
push 0x50
call fcn.0043f080
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x497763
push 0x20
call fcn.0043f080
add esp, 4
test eax, eax
je 0x497755
mov ecx, dword [esi + 0xd0]
push edi
push ecx
mov ecx, eax
call fcn.0044c6e0
push 0
push 0
push eax
mov ecx, ebx
call fcn.0044b600
jmp 0x497765
xor eax, eax
push eax
push eax
push eax
mov ecx, ebx
call fcn.0044b600
jmp 0x497765
xor eax, eax
mov edx, dword [ebp + 0x18]
mov dword [edx], eax
mov eax, dword [ebp + 0x18]
or byte [eax + 0x7f], 1
jmp 0x497889
mov esi, dword [ebp + 0x68]
mov dword [ebp + 0x18], edi
jmp 0x49788b
test ah, 0x10
mov al, byte [ebp + 0x14]
mov dl, 2
je 0x497854
test dl, al
je 0x497882
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
add eax, edx
add edx, 2
mov dword [ecx + 4], edx
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax]
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.00491880
mov edi, eax
test edi, edi
je 0x497ab1
cmp dword [edi + 0x78], 1
jne 0x497ab1
push 0x80
call fcn.0043f080
add esp, 4
test eax, eax
je 0x4977f5
mov edx, dword [esi + 0x2c]
push 0xff
push 0xc
push 0xfff4
push edx
mov ecx, eax
call fcn.00481140
mov dword [ebp + 0x18], eax
jmp 0x4977fc
mov dword [ebp + 0x18], 0
push 0x50
call fcn.0043f080
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x497844
push 0x20
call fcn.0043f080
add esp, 4
test eax, eax
je 0x497836
mov edx, dword [esi + 0xd0]
push edi
push edx
mov ecx, eax
call fcn.0044c6e0
push edi
push 0
push eax
mov ecx, ebx
call fcn.0044b600
jmp 0x497846
xor eax, eax
push edi
push eax
push eax
mov ecx, ebx
call fcn.0044b600
jmp 0x497846
xor eax, eax
mov ecx, dword [ebp + 0x18]
mov dword [ecx], eax
mov eax, dword [ebp + 0x18]
or byte [eax + 0x7f], 1
jmp 0x497889
test dl, al
je 0x497882
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
add eax, edx
add edx, 2
mov dword [ecx + 4], edx
mov ecx, dword [esi + 0x2c]
xor edx, edx
mov dh, byte [eax + 1]
mov dl, byte [eax]
push edx
call fcn.00491880
test eax, eax
mov dword [ebp + 0x18], eax
je 0x497ab1
jmp 0x497889
mov dword [ebp + 0x18], 0
xor ebx, ebx
test byte [ebp + 0x14], 4
je 0x4978a2
lea eax, [ebp - 0xc8]
push eax
lea ecx, [esi + 4]
call fcn.004924b0
jmp 0x4978c3
mov eax, dword [esi + 0x2c]
cmp eax, ebx
je 0x4978b1
mov eax, dword [eax + 0xd0]
jmp 0x4978b3
xor eax, eax
push eax
lea ecx, [ebp - 0xc8]
push ecx
call fcn.0043d240
add esp, 8
test byte [ebp + 0x14], 8
je 0x4978dc
push 1
lea edx, [ebp - 0xac]
push edx
lea ecx, [esi + 4]
call fcn.00492600
jmp 0x4978e7
lea ecx, [ebp - 0xac]
call fcn.00461870
mov dl, byte [ebp + 0x14]
test dl, 0x10
je 0x49790a
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
add eax, ecx
add ecx, 2
mov dword [esi + 8], ecx
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax]
mov word [ebp + 0x24], cx
jmp 0x49790e
mov word [ebp + 0x24], bx
test dl, 0x20
je 0x49794f
mov eax, dword [esi + 8]
mov edi, dword [esi + 4]
add edi, eax
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax + 0xd0]
push edi
lea edx, [ebp + 0x58]
push edx
call fcn.004b13b0
mov eax, dword [eax]
mov dword [ebp + 0x2c], eax
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x497938
mov ecx, dword [esi + 8]
sub eax, edx
mov dl, byte [ebp + 0x14]
inc eax
add ecx, eax
mov dword [esi + 8], ecx
jmp 0x497961
mov ecx, dword [esi + 0x2c]
mov eax, dword [ecx + 0xd0]
mov ecx, dword [eax + 0xa88]
mov dword [ebp + 0x2c], ecx
test dl, 0x40
je 0x497981
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
add eax, ecx
add ecx, 2
mov dword [esi + 8], ecx
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax]
mov word [ebp + 0x26], cx
jmp 0x497985
mov word [ebp + 0x26], bx
mov ecx, dword [ebp + 0x14]
test ch, 1
je 0x4979bb
push 0xc
call fcn.0043f080
add esp, 4
cmp eax, ebx
je 0x4979a5
mov dword [eax + 4], ebx
mov dword [eax], ebx
mov dword [eax + 8], ebx
jmp 0x4979a7
xor eax, eax
lea edx, [esi + 4]
push edx
mov ecx, eax
mov dword [ebp + 0x48], eax
call fcn.00447700
mov dl, byte [ebp + 0x14]
mov ecx, dword [ebp + 0x14]
test ch, 2
je 0x4979d4
mov eax, dword [esi + 8]
mov edi, dword [esi + 4]
mov bl, byte [eax + edi]
inc eax
mov byte [ebp + 0x45], bl
mov dword [esi + 8], eax
xor ebx, ebx
jmp 0x4979d8
mov byte [ebp + 0x45], 1
test ch, 4
je 0x4979ef
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
mov cl, byte [eax + ecx]
inc eax
mov byte [ebp + 0x4c], cl
mov dword [esi + 8], eax
jmp 0x4979f3
mov byte [ebp + 0x4c], 0
test dl, dl
jns 0x497a27
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax + 0xb4]
mov eax, dword [ecx + 0x2c]
mov cl, byte [eax + 0x50]
test cl, cl
jne 0x497a27
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
add ecx, eax
mov dword [ebp + 0x30], ecx
mov ecx, dword [esi + 0x14]
sub ecx, eax
mov dword [ebp + 0x34], ecx
mov ecx, dword [esi + 0x3c]
add ecx, eax
mov dword [ebp + 0x40], ecx
jmp 0x497a2d
mov dword [ebp + 0x30], ebx
mov dword [ebp + 0x34], ebx
mov eax, dword [esi + 0x2c]
mov ecx, dword [eax + 0x210]
cmp ecx, ebx
jne 0x497a62
mov eax, dword [eax + 0x54]
cmp eax, ebx
je 0x497a5d
mov ecx, dword [eax + 8]
cmp ecx, ebx
je 0x497a5d
call fcn.00482660
mov dl, byte [ebp + 0x14]
xor ecx, ecx
cmp eax, 5
setle cl
dec ecx
and ecx, eax
jmp 0x497a62
mov ecx, 9
test dl, 1
mov dword [ebp + 0x3c], ecx
je 0x497a7f
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x50]
lea edx, [ebp - 0xc8]
push edx
push eax
call fcn.0046df80
jmp 0x497a92
mov edx, dword [esi + 0x54]
lea ecx, [ebp - 0xc8]
push ecx
mov ecx, dword [esi + 0x50]
push edx
call fcn.004708b0
mov eax, dword [ebp + 0x14]
test ah, 1
je 0x497ab1
mov ecx, dword [ebp + 0x48]
cmp ecx, ebx
mov esi, ecx
je 0x497ab1
call fcn.00447690
push esi
call fcn.0043f0a0
add esp, 4
pop edi
pop esi
pop ebx
add ebp, 0x74
mov esp, ebp
pop ebp
ret 4