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

Disassembly:
add esp, 4
pop ecx
push eax
call 0x509d52
add byte [edx], bh
cmp dword [0x363c4943], esi
dec esi
add esp, 4
pop eax
push esi
xor esi, 0x13163
pop esi
mov edx, dword [ebp - 0x4e8]
mov dword [ebp - 0x710], edx
jmp 0x509dd4
push eax
xor eax, 0x15345
add eax, 0x121f2
xor eax, 0xcfe0
pop eax
push ebx
push edi
add esp, 4
xor ebx, 0x7bd3
sub ebx, 0xace1
sub ebx, 0xdda4
sub ebx, 0x14e89
pop ebx
cmp dword [ebp - 0x710], 0
jne 0x509e50
push esi
call 0x509e1f
add byte [ecx], bh
dec ecx
inc esp
dec eax
push eax
cmp dword [0xc4833f35], esi
add al, 0x81
invalid
push eax
push eax
add esp, 4
add eax, 0x14c54
and eax, 0x9d4f
or eax, 0x11131
pop eax
push edi
or edi, 0x2710
xor edi, 0x179f6
sub edi, 0x4e34
sub edi, 0x57d6
pop edi
mov ecx, dword [ebp - 0x710]
mov edx, dword [ecx + 0x18]
mov dword [ebp - 0x300], edx
mov dword [ebp - 0x720], 0
mov eax, dword [ebp - 0x300]
mov dword [ebp - 0x1564], eax
cmp dword [ebp - 0x1564], 0
jne 0x509ec1
mov ecx, dword [ebp - 0x720]
mov dword [ebp - 0x3c8], ecx
jmp 0x50a1b2
mov edx, dword [ebp - 0x1564]
mov eax, dword [ebp - 0x300]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x1568], eax
jne 0x509ee9
mov ecx, dword [ebp - 0x720]
mov dword [ebp - 0x3c8], ecx
jmp 0x50a1b2
mov edx, 8
imul eax, edx, 0
mov ecx, dword [ebp - 0x1568]
mov edx, dword [ecx + eax + 0x78]
mov dword [ebp - 0x1570], edx
cmp dword [ebp - 0x1570], 0
jne 0x509f1b
mov eax, dword [ebp - 0x720]
mov dword [ebp - 0x3c8], eax
jmp 0x50a1b2
mov ecx, dword [ebp - 0x300]
add ecx, dword [ebp - 0x1570]
mov dword [ebp - 0x714], ecx
jne 0x509f40
mov edx, dword [ebp - 0x720]
mov dword [ebp - 0x3c8], edx
jmp 0x50a1b2
mov eax, dword [ebp - 0x714]
mov ecx, dword [ebp - 0x300]
add ecx, dword [eax + 0x20]
mov dword [ebp - 0x18e0], ecx
mov edx, dword [ebp - 0x714]
mov eax, dword [ebp - 0x300]
add eax, dword [edx + 0x24]
mov dword [ebp - 0x18e4], eax
mov ecx, dword [ebp - 0x714]
mov edx, dword [ebp - 0x300]
add edx, dword [ecx + 0x1c]
mov dword [ebp - 0x18e8], edx
mov dword [ebp - 0x718], 0
jmp 0x509f9a
mov eax, dword [ebp - 0x718]
add eax, 1
mov dword [ebp - 0x718], eax
mov ecx, dword [ebp - 0x714]
mov edx, dword [ebp - 0x718]
cmp edx, dword [ecx + 0x18]
jae 0x50a1a6
mov eax, dword [ebp - 0x718]
mov ecx, dword [ebp - 0x18e0]
mov edx, dword [ebp - 0x300]
add edx, dword [ecx + eax*4]
mov dword [ebp - 0x71c], edx
mov eax, dword [ebp - 0x718]
mov ecx, dword [ebp - 0x18e4]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 0x18e8]
mov ecx, dword [ebp - 0x300]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x18ec], ecx
mov dword [ebp - 0x188], 0
jmp 0x50a00a
mov edx, dword [ebp - 0x188]
add edx, 1
mov dword [ebp - 0x188], edx
mov eax, dword [ebp - 0x71c]
add eax, dword [ebp - 0x188]
movsx ecx, byte [eax]
test ecx, ecx
je 0x50a0bc
mov edx, dword [ebp - 0x188]
movsx eax, byte [ebp + edx - 0x830]
test eax, eax
je 0x50a0bc
push esi
push ecx
add esp, 4
or esi, 0x13b05
pop esi
push ecx
push ecx
add esp, 4
jmp 0x50a04e
call 0x50a05d
add byte [edx + ecx*2 + 0x37], al
cmp dword [edi + 0x35], eax
dec eax
inc esi
cmp al, 0x83
les eax, [ebx + ebp*8]
push es
dec esi
dec esi
dec esp
dec edx
inc ecx
dec ecx
pop ecx
mov ecx, dword [ebp - 0x71c]
add ecx, dword [ebp - 0x188]
movsx edx, byte [ecx]
mov eax, dword [ebp - 0x188]
movsx ecx, byte [ebp + eax - 0x830]
cmp edx, ecx
je 0x50a0ae
mov edx, dword [ebp - 0x71c]
add edx, dword [ebp - 0x188]
movsx eax, byte [edx]
xor eax, 0x20
mov ecx, dword [ebp - 0x188]
movsx edx, byte [ebp + ecx - 0x830]
cmp eax, edx
jne 0x50a0b5
jmp 0x509ffb
jmp 0x50a0bc
push ebx
push ebx
add esp, 4
add ebx, 0x17216
pop ebx
push edx
push edx
add esp, 4
call 0x50a0dd
add byte [ecx + 0x44], al
push eax
cmp dword [edx + 0x43], ecx
push eax
inc esp
xor eax, 0x5a04c483
push edi
jmp 0x50a0e7
xor edi, 0xd669
pop edi
mov eax, dword [ebp - 0x71c]
add eax, dword [ebp - 0x188]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x188]
movsx eax, byte [ebp + edx - 0x830]
cmp ecx, eax
jne 0x50a11b
mov dword [ebp - 0xc5c], 0
jmp 0x50a18a
push edx
add edx, 0x11d0
or edx, 0x155f1
call 0x50a135
add byte [edi], dh
aaa
cmp byte [ebx], dh
xor eax, dword [edi - 0x7d]
les eax, [edx + ebx*2]
push edx
call 0x50a149
add byte [ebp + 0x33], cl
dec edi
xor esi, dword [edi]
dec ebx
dec edx
cmp byte [eax], bh
add esp, 4
pop edx
mov ecx, dword [ebp - 0x71c]
add ecx, dword [ebp - 0x188]
movsx edx, byte [ecx]
or edx, 0x20
mov eax, dword [ebp - 0x188]
movsx ecx, byte [ebp + eax - 0x830]
or ecx, 0x20
cmp edx, ecx
jge 0x50a180
mov dword [ebp - 0xc5c], 0xffffffff
jmp 0x50a18a
mov dword [ebp - 0xc5c], 1
cmp dword [ebp - 0xc5c], 0
jne 0x50a1a1
mov edx, dword [ebp - 0x18ec]
mov dword [ebp - 0x3c8], edx
jmp 0x50a1b2
jmp 0x509f8b
mov eax, dword [ebp - 0x720]
mov dword [ebp - 0x3c8], eax
cmp dword [ebp - 0x3c8], 0
je 0x50a28d
push ebx
push ecx
add esp, 4
add ebx, 0x9855
or ebx, 0x3023
jmp 0x50a1d6
and ebx, 0xc427
pop ebx
push ebx
and ebx, 0x11915
sub ebx, 0xea30
xor ebx, 0x607
pop ebx
mov ecx, dword [ebp - 0x3c8]
mov dword [ebp - 0x18f0], ecx
push edx
push ebx
add esp, 4
xor edx, 0x11130
pop edx
push edi
push ecx
add esp, 4
or edi, 0x3dfa
and edi, 0x12860
or edi, 0x3bb4
and edi, 0x36b0
pop edi
push ecx
xor ecx, 0x3b46
pop ecx
mov edx, dword [ebp - 0x18f0]
mov dword [ebp - 0x18f4], edx
lea eax, [ebp - 0x1628]
push eax
call dword [ebp - 0x18f4]
test eax, eax
jne 0x50a28d
push eax
push edx
add esp, 4
add eax, 0x1650e
and eax, 0x10d0b
call 0x50a26b
add byte [ecx], bh
inc edi
dec esi
xor bh, byte [eax]
dec edi
cmp cl, byte [edi - 0x7d]
les eax, [eax + ebp*8]
pop es
add byte [eax], al
add byte [eax], al
inc ebx
dec ebx
aaa
cmp dword [esi], esi
add esp, 4
pop eax
mov dword [ebp - 0xa58], 0
jmp fcn.0050a978