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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59d5c4
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
push ebx
push esi
push edi
mov eax, dword [0x5fae30]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
call fcn.00501ac0
cmp word [esi + 0xa8], 0x3f
jne 0x503e85
cmp dword [esi + 0xac], 1
jne 0x503e85
mov ecx, esi
call fcn.00501ac0
movzx ecx, word [esi + 0xa8]
xor edi, edi
lea eax, [ecx - 0x21]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x14], 0x3e
cmp eax, 0x31
ja case.0x5034da.41
movzx eax, byte [eax + 0x503fb0]
mov ebx, dword [ebp + 8]
jmp dword [eax*4 + 0x503f8c]
mov dword [ebp - 0x18], 1
mov ecx, esi
call fcn.00501ac0
push 0xc
call fcn.0053f7d7
mov edi, eax
add esp, 4
mov dword [ebp - 0x24], edi
mov dword [ebp - 4], 0
test edi, edi
je 0x50352e
mov edx, dword [ebp + 8]
mov eax, dword [edx]
xor ecx, ecx
cmp dword [ebp - 0x18], ecx
sete cl
and eax, 0xffffffef
push ecx
push eax
mov ecx, esi
call fcn.005033a0
push eax
mov ecx, edi
call fcn.00404b38
mov edi, eax
jmp 0x503530
xor edi, edi
push edi
lea ecx, [esi + 0x14]
mov dword [ebp - 4], 0xffffffff
call fcn.00401203
mov ecx, esi
call fcn.00501ac0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
movzx eax, word [esi + 0xb8]
cmp eax, 0x21
je 0x503570
cmp eax, 0x3d
je 0x503577
jmp case.0x5034da.39
mov dword [ebp - 0x18], 1
mov ecx, esi
call fcn.00501ac0
mov ecx, esi
call fcn.00501ac0
push 0xc
call fcn.0053f7d7
mov edi, eax
add esp, 4
mov dword [ebp - 0x24], edi
mov dword [ebp - 4], 1
test edi, edi
je 0x5035c1
mov edx, dword [ebx]
xor ecx, ecx
cmp dword [ebp - 0x18], ecx
sete cl
or edx, 0x10
push ecx
push edx
mov ecx, esi
call fcn.005033a0
push eax
mov ecx, edi
call fcn.00404b38
mov edi, eax
jmp 0x5035c3
xor edi, edi
push edi
lea ecx, [esi + 0x14]
mov dword [ebp - 4], 0xffffffff
call fcn.00401203
test edi, edi
jne 0x503e68
cmp word [esi + 0xa8], 0x50
jne case.0x5034da.34
mov ecx, esi
call fcn.00501ac0
movzx eax, word [esi + 0xa8]
cmp eax, 0x3c
jne 0x503601
mov dword [ebp - 0x14], 0x3e
jmp 0x503609
cmp eax, 0x27
jne 0x503609
mov dword [ebp - 0x14], eax
mov ecx, esi
call fcn.00501ac0
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x24], eax
inc eax
push 0x1c
mov dword [esi + 0xc], eax
call fcn.0053f7d7
add esp, 4
test eax, eax
je 0x503637
mov ecx, dword [ebx]
and ecx, 0x10
push ecx
mov ecx, eax
call fcn.004070b3
jmp 0x503639
xor eax, eax
push eax
lea ecx, [esi + 0x14]
mov dword [ebp - 0x1c], eax
call fcn.00401203
push 0x20
call fcn.0053f7d7
add esp, 4
test eax, eax
je 0x50366c
mov edx, dword [ebp + 8]
mov ecx, dword [edx]
shr ecx, 4
and ecx, 1
push ecx
push 0xffffffffffffffff
mov ecx, eax
call fcn.00500160
mov ebx, eax
jmp 0x50366e
xor ebx, ebx
push ebx
lea ecx, [esi + 0x14]
call fcn.00401203
push 0x20
call fcn.0053f7d7
add esp, 4
test eax, eax
je 0x5036a1
mov edx, dword [ebp + 8]
mov ecx, dword [edx]
shr ecx, 4
not ecx
and ecx, 1
push ecx
push 0xffffffffffffffff
mov ecx, eax
call fcn.00500160
mov dword [ebp - 0x18], eax
jmp 0x5036a8
mov dword [ebp - 0x18], 0
mov edx, dword [ebp - 0x18]
push edx
lea ecx, [esi + 0x14]
call fcn.00401203
lea ecx, [ebp - 0x38]
call fcn.00402c34
cmp word [esi + 0xa8], 0
mov dword [ebp - 4], 2
je 0x50372c
movzx eax, word [esi + 0xa8]
cmp ax, word [ebp - 0x14]
je 0x50372c
push 1
push 1
lea ecx, [ebp - 0x20]
push ecx
lea ecx, [ebx + 0xc]
mov dword [ebp - 0x20], eax
call fcn.005000c0
movzx eax, word [esi + 0xa8]
movzx edx, al
cmp dx, ax
jne 0x503707
mov al, byte [esi + 0xa8]
mov byte [ebp - 0x10], al
jmp 0x50370b
mov byte [ebp - 0x10], 0
push 1
push 1
lea ecx, [ebp - 0x10]
push ecx
lea ecx, [ebp - 0x38]
call fcn.0040542f
mov ecx, esi
call fcn.00501ac0
cmp word [esi + 0xa8], 0
jne 0x5036cd
mov ecx, esi
call fcn.00501ac0
lea ecx, [ebp - 0x38]
call fcn.0040275c
lea edx, [ebp - 0x20]
mov dword [ebp - 0x14], eax
push edx
lea eax, [ebp - 0x14]
push eax
call fcn.004ffc60
add esp, 8
test eax, eax
je 0x503774
mov ecx, dword [ebp - 0x14]
xor eax, eax
cmp byte [ecx], al
sete al
test eax, eax
je 0x503774
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x18]
mov dword [ebx + 4], eax
lea ecx, [ebx + 0xc]
mov dword [edx + 4], eax
call fcn.00501620
mov edi, dword [ebp - 0x1c]
add edi, 4
push ebx
mov ecx, edi
call fcn.00401203
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.005033a0
push eax
mov ecx, edi
call fcn.00401203
mov edx, dword [ebp - 0x18]
push edx
mov ecx, edi
call fcn.00401203
mov ebx, dword [ebp - 0x24]
push 0
push ebx
lea ecx, [esi + 0x50]
call fcn.00405f8d
mov eax, dword [esi + 0x5c]
mov edi, dword [ebp - 0x1c]
lea ecx, [ebp - 0x38]
mov dword [eax + ebx*4], edi
mov dword [ebp - 4], 0xffffffff
call fcn.00403913
mov ecx, esi
call fcn.00501ac0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, esi
call fcn.00501ac0
push 8
call fcn.0053f7d7
mov edi, eax
add esp, 4
mov dword [ebp - 0x24], edi
mov dword [ebp - 4], 3
test edi, edi
je 0x50352e
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
push edx
mov ecx, esi
call fcn.005033a0
push eax
mov ecx, edi
call fcn.00401d75
mov edi, eax
jmp 0x503530
mov ecx, esi
call fcn.00501ac0
cmp word [esi + 0xa8], di
je 0x503864
jmp 0x503840
movzx eax, word [esi + 0xa8]
push eax
call fcn.00540fbe
add esp, 4
test eax, eax
je 0x503864
mov ecx, esi
call fcn.00501ac0
cmp word [esi + 0xa8], di
jne 0x503840
movzx eax, word [esi + 0xa8]
cmp eax, 0x3c
je 0x5038ed
cmp eax, 0x27
je 0x5038ed
lea ecx, [ebp - 0x38]
call fcn.00402c34
cmp word [esi + 0xa8], 0
mov dword [ebp - 4], 5
je 0x503ce4
jmp 0x5038a0
movzx eax, word [esi + 0xa8]
cmp eax, 0x29
je 0x503ce4
movzx ecx, al
cmp cx, ax
jne 0x5038c3
mov dl, byte [esi + 0xa8]
mov byte [ebp + 8], dl
jmp 0x5038c7
mov byte [ebp + 8], 0
push 1
push 1
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x38]
call fcn.0040542f
mov ecx, esi
call fcn.00501ac0
cmp word [esi + 0xa8], 0
jne 0x5038a0
jmp 0x503ce4
xor edx, edx
cmp eax, 0x3c
setne dl
push 0x20
dec edx
and edx, 0x17
add edx, 0x27
movzx eax, dx
mov dword [ebp - 0x14], eax
call fcn.0053f7d7
add esp, 4
test eax, eax
je 0x50391d
push 0xfffffffffffffffd
mov ecx, eax
call fcn.005001e0
mov ebx, eax
jmp 0x50391f
xor ebx, ebx
push ebx
lea ecx, [esi + 0x14]
call fcn.00401203
mov ecx, esi
call fcn.00501ac0
lea ecx, [ebp - 0x38]
call fcn.00402c34
cmp word [esi + 0xa8], 0
mov dword [ebp - 4], 4
je 0x5039b1
jmp 0x503950
movzx eax, word [esi + 0xa8]
cmp ax, word [ebp - 0x14]
je 0x5039b1
push 1
mov ecx, eax
push 1
lea edx, [ebp + 8]
mov dword [ebp + 8], ecx
push edx
lea ecx, [ebx + 0xc]
call fcn.005000c0
movzx eax, word [esi + 0xa8]
movzx ecx, al
cmp cx, ax
jne 0x50398c
mov dl, byte [esi + 0xa8]
mov byte [ebp + 8], dl
jmp 0x503990
mov byte [ebp + 8], 0
push 1
push 1
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x38]
call fcn.0040542f
mov ecx, esi
call fcn.00501ac0
cmp word [esi + 0xa8], 0
jne 0x503950
mov ecx, esi
call fcn.00501ac0
lea ecx, [ebp - 0x38]
call fcn.0040275c
lea ecx, [ebp - 0x24]
push ecx
lea edx, [ebp + 8]
push edx
mov dword [ebp + 8], eax
call fcn.004ffc60
add esp, 8
test eax, eax
je 0x5039f3
mov ecx, dword [ebp + 8]
xor eax, eax
cmp byte [ecx], al
sete al
test eax, eax
je 0x5039f3
mov edx, dword [ebp - 0x24]
lea ecx, [ebx + 0xc]
mov dword [ebx + 8], edx
call fcn.00501620
push ebx
lea ecx, [esi + 0x3c]
call fcn.00500250
lea ecx, [ebp - 0x38]
mov edi, ebx
mov dword [ebp - 4], 0xffffffff
call fcn.00403913
mov ecx, esi
call fcn.00501ac0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x28
call fcn.0053f7d7
add esp, 4
test eax, eax
je 0x503a43
mov ecx, eax
call fcn.005002a0
mov ebx, eax
jmp 0x503a45
xor ebx, ebx
lea ecx, [esi + 0x14]
push ebx
call fcn.00401203
mov eax, 0x3f
lea ecx, [ebp - 0x34]
mov word [ebp - 0x34], ax
xor eax, eax
push ecx
lea ecx, [esi + 0xb8]
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
call fcn.004ffad0
mov ecx, esi
test eax, eax
je 0x503a8c
mov edi, dword [ebp + 8]
push edi
call fcn.00503460
mov dword [ebx + 0x1c], eax
jmp 0x503bc4
call fcn.00501ac0
mov edi, dword [esi + 0xb0]
push 0xc
call fcn.0053f7d7
add esp, 4
mov dword [ebp - 0x24], eax
mov dword [ebp - 4], 6
test eax, eax
je 0x503acc
mov edx, dword [ebp + 8]
mov eax, dword [edx]
push 1
push eax
mov ecx, esi
call fcn.005033a0
mov ecx, dword [ebp - 0x24]
push eax
call fcn.00404b38
mov dword [ebp - 0x1c], eax
jmp 0x503ad3
mov dword [ebp - 0x1c], 0
mov ecx, dword [ebp - 0x1c]
push ecx
lea ecx, [esi + 0x14]
call fcn.00401203
mov edx, dword [ebp - 0x1c]
mov dword [ebx + 0x1c], edx
mov eax, dword [esi + 0xb0]
push 1
sub eax, edi
lea ecx, [esi + 0x8c]
push eax
call fcn.004ffc00
lea ecx, [eax + edi*2]
push ecx
lea ecx, [ebx + 8]
call fcn.005000c0
lea ecx, [ebp - 0x38]
call fcn.00402c34
mov dword [ebp - 4], 7
cmp edi, dword [esi + 0xb0]
jge 0x503b64
mov edi, edi
cmp edi, dword [esi + 0x94]
jl 0x503b2c
xor eax, eax
jmp 0x503b36
mov edx, dword [esi + 0x90]
movzx eax, word [edx + edi*2]
mov ecx, 0xff
and cx, ax
cmp cx, ax
setne dl
dec dl
push 1
and dl, al
push 1
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x10], dl
call fcn.0040542f
inc edi
cmp edi, dword [esi + 0xb0]
jl 0x503b20
lea ecx, [ebp - 0x38]
call fcn.0040275c
lea ecx, [ebp - 0x24]
push ecx
lea edx, [ebp - 0x1c]
push edx
mov dword [ebp - 0x1c], eax
call fcn.004ffc60
add esp, 8
or edi, 0xffffffff
test eax, eax
je 0x503ba3
mov ecx, dword [ebp - 0x1c]
xor eax, eax
cmp byte [ecx], al
sete al
test eax, eax
je 0x503ba3
mov edx, dword [ebp - 0x24]
mov dword [ebx + 4], edx
mov dword [ebx + 0x1c], 0
jmp 0x503baf
push ebx
lea ecx, [esi + 0x78]
mov dword [ebx + 4], edi
call fcn.005002c0
mov ecx, esi
call fcn.00501ac0
lea ecx, [ebp - 0x38]
mov dword [ebp - 4], edi
call fcn.00403913
mov edi, dword [ebp + 8]
mov eax, dword [edi]
lea ecx, [ebp + 8]
push ecx
mov ecx, esi
mov dword [ebp + 8], eax
call fcn.00503210
mov dword [ebx + 0x20], eax
cmp word [esi + 0xa8], 0x7c
jne 0x503c14
mov ecx, esi
call fcn.00501ac0
mov edx, dword [edi]
push edx
mov ecx, esi
call fcn.005033a0
mov ecx, esi
mov dword [ebx + 0x24], eax
mov edi, ebx
call fcn.00501ac0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, esi
mov dword [ebx + 0x24], 0
mov edi, ebx
call fcn.00501ac0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
test cx, cx
je 0x503c64
nop
movzx eax, word [esi + 0xa8]
push eax
call fcn.00540fbe
add esp, 4
test eax, eax
je 0x503c64
mov ecx, esi
call fcn.00501ac0
cmp word [esi + 0xa8], di
jne 0x503c40
movzx eax, word [esi + 0xa8]
cmp eax, 0x30
jb 0x503d60
cmp eax, 0x39
ja 0x503d60
lea ecx, [ebp - 0x38]
call fcn.00402c34
cmp word [esi + 0xa8], 0
mov dword [ebp - 4], 8
je 0x503ce4
jmp 0x503ca0
movzx eax, word [esi + 0xa8]
cmp eax, 0x29
je 0x503ce4
movzx ecx, al
cmp cx, ax
jne 0x503cbf
mov dl, byte [esi + 0xa8]
mov byte [ebp + 8], dl
jmp 0x503cc3
mov byte [ebp + 8], 0
push 1
push 1
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x38]
call fcn.0040542f
mov ecx, esi
call fcn.00501ac0
cmp word [esi + 0xa8], 0
jne 0x503ca0
lea ecx, [ebp - 0x38]
mov dword [ebp + 8], 0
call fcn.0040275c
lea ecx, [ebp + 8]
push ecx
lea edx, [ebp - 0x24]
push edx
mov dword [ebp - 0x24], eax
call fcn.004ffc60
push 0x20
call fcn.0053f7d7
add esp, 0xc
test eax, eax
je 0x503d20
mov ecx, dword [ebp + 8]
push ecx
mov ecx, eax
call fcn.005001e0
mov edi, eax
jmp 0x503d22
xor edi, edi
push edi
lea ecx, [esi + 0x14]
call fcn.00401203
push edi
lea ecx, [esi + 0x3c]
call fcn.00500250
lea ecx, [ebp - 0x38]
mov dword [ebp - 4], 0xffffffff
call fcn.00403913
mov ecx, esi
call fcn.00501ac0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebp + 8]
mov ebx, dword [edx]
jmp 0x503d70
movzx eax, word [esi + 0xa8]
mov edx, 1
test ax, ax
jne 0x503d89
cmp dword [esi + 0xac], edx
je 0x503e07
movzx ecx, word [esi + 0xa8]
cmp ecx, 0x3a
je 0x503e07
cmp ecx, 0x29
je 0x503e07
cmp eax, 0x28
jne 0x503da7
cmp dword [esi + 0xac], edx
je 0x503e07
add ecx, 0xffffffd3
xor eax, eax
cmp ecx, 0x46
ja case.0x503db8.46
movzx ecx, byte [ecx + 0x503ffc]
jmp dword [ecx*4 + 0x503fe4]
mov eax, 8
test edi, edi
je 0x503df9
not eax
mov ecx, esi
and ebx, eax
call fcn.00501ac0
jmp 0x503d70
mov eax, edx
jmp case.0x503db8.46
mov eax, 2
jmp case.0x503db8.46
mov eax, 4
jmp case.0x503db8.46
not eax
mov ecx, esi
mov edi, edx
and ebx, eax
call fcn.00501ac0
jmp 0x503d70
mov ecx, esi
or ebx, eax
call fcn.00501ac0
jmp 0x503d70
movzx eax, word [esi + 0xa8]
cmp eax, 0x3a
je 0x503e57
cmp word [esi + 0xa8], 0x28
jne 0x503e25
cmp dword [esi + 0xac], edx
je 0x503e52
mov edx, dword [ebp + 8]
push 0
mov ecx, esi
mov dword [edx], ebx
call fcn.00501b60
mov ecx, esi
mov edi, eax
call fcn.00501ac0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, 0x3a
jne 0x503e5e
mov ecx, esi
call fcn.00501ac0
push ebx
mov ecx, esi
call fcn.005033a0
mov edi, eax
mov ecx, esi
call fcn.00501ac0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x1c
call fcn.0053f7d7
add esp, 4
test eax, eax
je 0x503ea7
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
and edx, 0x10
push edx
mov ecx, eax
call fcn.004070b3
mov ebx, eax
jmp 0x503ea9
xor ebx, ebx
lea ecx, [esi + 0x14]
push ebx
call fcn.00401203
inc dword [esi + 8]
mov edi, dword [esi + 8]
push 0x20
call fcn.0053f7d7
add esp, 4
test eax, eax
je 0x503edf
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
shr edx, 4
and edx, 1
push edx
push edi
mov ecx, eax
call fcn.00500160
mov dword [ebp - 0x1c], eax
jmp 0x503ee6
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x1c]
push eax
lea ecx, [esi + 0x14]
call fcn.00401203
mov ecx, dword [ebp - 0x1c]
push ecx
lea ecx, [ebx + 4]
call fcn.00401203
mov edx, dword [ebp + 8]
mov eax, dword [edx]
push eax
mov ecx, esi
call fcn.005033a0
push eax
lea ecx, [ebx + 4]
call fcn.00401203
push 0x20
call fcn.0053f7d7
add esp, 4
test eax, eax
je 0x503f3f
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
shr edx, 4
not edx
and edx, 1
push edx
mov ecx, edi
push ecx
mov ecx, eax
call fcn.00500160
mov dword [ebp + 8], eax
jmp 0x503f46
mov dword [ebp + 8], 0
mov edx, dword [ebp + 8]
push edx
lea ecx, [esi + 0x14]
call fcn.00401203
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebx + 4]
call fcn.00401203
push 0
push edi
lea ecx, [esi + 0x28]
call fcn.004065fa
mov ecx, dword [esi + 0x34]
mov dword [ecx + edi*4], ebx
mov ecx, esi
call fcn.00501ac0
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4