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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x1f8]
cmp eax, dword [ecx + 8]
jbe 0x507773
sub esp, 0x278
mov eax, 0
mov dword [esp + 0x270], eax
mov dword [esp + 0x274], eax
mov byte [esp + 0x3b], 0
mov eax, dword [0x9062b0]
mov ecx, dword [0x9062b4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004c8fb0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
cmp ecx, 4
je 0x507070
cmp ecx, 0x10
jne 0x507726
xor ecx, ecx
jmp 0x507730
mov dword [esp + 0x40], ecx
mov dword [esp + 0xb4], eax
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
lea edi, [esp + 0xe0]
xor eax, eax
call fcn.00461dec
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0x5c], 0
lea edi, [esp + 0x7c]
call fcn.00461e4b
mov dword [esp], 0x202
lea ecx, [esp + 0xe0]
mov dword [esp + 4], ecx
call fcn.00497420
mov ecx, dword [esp + 8]
test ecx, ecx
jne 0x50718b
lea eax, [0x55ec20]
mov dword [esp + 0x274], eax
mov byte [esp + 0x3b], 1
mov dword [esp], 2
mov dword [esp + 4], 3
mov dword [esp + 8], 0x11
call fcn.00492cc0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x50717a
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
lea edx, [0x507780]
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], eax
lea edx, [esp + 0x64]
mov dword [esp + 0x270], edx
mov byte [esp + 0x3b], 3
mov edx, dword [esp + 0x280]
mov ebx, edx
sar edx, 8
mov byte [esp + 0x6e], dl
mov byte [esp + 0x6f], bl
mov word [esp + 0x6c], 2
xor ecx, ecx
jmp 0x50719f
mov byte [esp + 0x3b], 0
call fcn.00511770
add esp, 0x278
ret
add esp, 0x278
ret
movzx edx, byte [esp + ecx + 0x27c]
mov byte [esp + ecx + 0x70], dl
inc ecx
cmp ecx, 4
jge 0x5071ab
jb 0x507192
jmp 0x50771a
mov dword [esp + 0x50], eax
lea eax, [0x522ce0]
mov dword [esp], eax
mov dword [esp + 4], 0x14
mov dword [esp + 8], 0x14
call fcn.00449820
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x40]
cmp ecx, 1
jbe 0x507710
mov edx, dword [esp + 0xb4]
movzx ebx, byte [edx + 1]
cmp ecx, 2
jbe 0x507704
movzx ebp, byte [edx + 2]
cmp ecx, 3
jbe 0x5076f8
mov dword [esp + 0xd4], eax
movzx ecx, byte [edx]
movzx edx, byte [edx + 3]
mov byte [eax], cl
mov byte [eax + 1], bl
xchg ebp, ebx
mov byte [eax + 2], bl
xchg ebp, ebx
mov byte [eax + 3], dl
movzx ecx, byte [esp + 0x27c]
movzx edx, byte [esp + 0x27d]
movzx ebx, byte [esp + 0x27e]
movzx ebp, byte [esp + 0x27f]
mov byte [eax + 4], cl
mov byte [eax + 5], dl
mov byte [eax + 6], bl
xchg ebp, ebx
mov byte [eax + 7], bl
xchg ebp, ebx
mov word [eax + 8], 0x1100
mov ecx, dword [esp + 0x280]
mov edx, ecx
shr ecx, 8
mov byte [eax + 0xe], cl
mov byte [eax + 0xf], dl
lea ecx, [0x522ce0]
mov dword [esp], ecx
mov dword [esp + 4], 8
mov dword [esp + 8], 8
call fcn.00449820
mov eax, dword [esp + 0xc]
mov dword [esp + 0xd0], eax
mov ecx, dword [esp + 0xd4]
movzx edx, byte [ecx + 0xe]
movzx ebx, byte [ecx + 0xf]
mov byte [eax + 2], dl
mov byte [eax + 3], bl
movzx edx, byte [ecx + 0x10]
movzx ebx, byte [ecx + 0x11]
mov byte [eax + 4], dl
mov byte [eax + 5], bl
nop
call fcn.0050b2e0
mov eax, dword [esp]
mov ecx, 0xfbff
mul ecx
lea eax, [edx + 0x400]
mov edx, eax
shr eax, 8
mov ebx, dword [esp + 0xd4]
mov byte [ebx + 0xc], al
mov byte [ebx + 0xd], dl
mov ebp, dword [esp + 0xd0]
mov byte [ebp], al
mov byte [ebp + 1], dl
nop
mov eax, dword [esp + 0x284]
mov dword [esp], eax
mov edx, dword [esp + 0x288]
mov dword [esp + 4], edx
lea esi, [0x54016f]
mov dword [esp + 8], esi
mov dword [esp + 0xc], 6
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0xffffffff
call fcn.004dba10
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x18]
mov dword [esp + 0xb0], eax
xor edx, edx
jmp 0x50734e
movzx eax, byte [0x92b261]
test al, al
jne 0x5072b0
jmp 0x5075b8
inc edx
cmp edx, ecx
jge 0x507339
jae 0x5076f1
lea ebx, [eax + edx*8]
mov ebp, dword [ebx + 4]
mov ebx, dword [ebx]
test ebp, ebp
je 0x50734d
mov dword [esp + 0x58], edx
mov dword [esp], ebx
mov dword [esp + 4], ebp
call fcn.0050fc10
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
nop
lea edx, [esp + 0x90]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044d710
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x4c], ecx
mov edx, dword [esp + 0xc]
mov dword [esp + 0xb8], edx
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0050fd10
mov ecx, dword [esp + 0x18]
movzx eax, byte [esp + 0x1c]
mov edx, dword [esp + 0x4c]
cmp edx, ecx
jb 0x5076ec
test al, al
je 0x5075a4
mov dword [esp + 0x54], ecx
lea eax, [ecx + 8]
mov dword [esp + 0x60], eax
mov dword [esp + 0xd8], eax
mov edx, eax
shr eax, 8
mov ebx, dword [esp + 0xd4]
mov byte [ebx + 0xa], al
mov byte [ebx + 0xb], dl
mov ebp, dword [esp + 0xd0]
mov byte [ebp + 4], al
mov byte [ebp + 5], dl
movzx eax, byte [ebx + 0xa]
mov byte [ebx + 0x10], al
movzx eax, byte [ebx + 0xb]
mov byte [ebx + 0x11], al
lea eax, [0x522ce0]
mov dword [esp], eax
lea esi, [ecx + 0x14]
mov dword [esp + 0x44], esi
mov dword [esp + 4], esi
mov dword [esp + 8], esi
call fcn.00449820
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xb8]
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x44]
xor esi, esi
jmp 0x5075da
lea esi, [ebx + 0x13]
xor edi, edi
xor edi, edi
mov dword [esp + 0x48], edi
xor edi, edi
jmp 0x507632
test esi, 1
jne 0x507484
cmp esi, ebp
jae 0x5076bc
movzx eax, byte [ebx + eax + 0x13]
mov ebp, dword [esp + 0x48]
add eax, ebp
jmp 0x507488
mov eax, dword [esp + 0x48]
mov ecx, eax
shr eax, 0x10
and ecx, 0xffff
add eax, ecx
mov ecx, eax
shr eax, 0x10
add eax, ecx
not eax
mov ecx, dword [esp + 0xd0]
mov word [ecx + 6], ax
lea eax, [0x522ce0]
mov dword [esp], eax
mov edx, dword [esp + 0x60]
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call fcn.00449820
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0xd0]
mov ebx, dword [esp + 0xb8]
mov ebp, dword [esp + 0x54]
xor esi, esi
jmp 0x50764c
test ecx, ecx
jbe 0x50769e
mov dword [esp + 0xdc], eax
lea eax, [esp + 0xd8]
mov dword [esp + 0xcc], eax
lea eax, [esp + 0x5c]
mov dword [esp + 0xc8], eax
lea eax, [esp + 0x6c]
mov dword [esp + 0xc4], eax
lea eax, [esp + 0x7c]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xbc], 0
mov ecx, dword [0x92b29c]
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
mov ebp, dword [esp + 0xc4]
mov esi, dword [esp + 0xc0]
xor edi, edi
mov dword [esp], ecx
mov dword [esp + 4], 9
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], 0x10
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], edi
call fcn.0045fc90
movzx eax, byte [0x92b261]
test al, al
je 0x50767d
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x58]
jmp 0x50734d
mov byte [esp + 0x3b], 1
mov edx, dword [esp + 0x270]
mov eax, dword [edx]
call eax
mov byte [esp + 0x3b], 0
call fcn.00511770
add esp, 0x278
ret
inc esi
cmp esi, ebp
jge 0x507455
cmp esi, 0x14
jge 0x5075fa
jae 0x5076e0
movzx edi, byte [esi + ecx]
xchg edi, ebx
mov byte [eax + esi], bl
xchg edi, ebx
jmp 0x5075d9
lea edi, [esi - 0x14]
cmp ebx, edi
jbe 0x5076d7
movzx edi, byte [esi + edx - 0x14]
xchg edi, ebx
mov byte [eax + esi], bl
xchg edi, ebx
jmp 0x5075d9
movzx edx, word [eax + edi]
mov ecx, dword [esp + 0x48]
add ecx, edx
add edi, 2
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xd4]
cmp edi, esi
jge 0x507467
lea edx, [edi + 1]
cmp edx, ebp
jae 0x5076ce
cmp edi, ebp
jb 0x507613
jmp 0x5076c5
inc esi
cmp esi, ecx
jge 0x5074e4
cmp esi, 8
jge 0x507668
jae 0x5076b0
movzx edi, byte [esi + edx]
xchg edi, ebx
mov byte [eax + esi], bl
xchg edi, ebx
jmp 0x50764b
lea edi, [esi - 8]
cmp ebp, edi
jbe 0x5076a7
movzx edi, byte [esi + ebx - 8]
xchg edi, ebx
mov byte [eax + esi], bl
xchg edi, ebx
jmp 0x50764b
mov byte [esp + 0x3b], 1
mov edx, dword [esp + 0x270]
mov eax, dword [edx]
call eax
mov byte [esp + 0x3b], 0
call fcn.00511770
add esp, 0x278
ret
xor eax, eax
mov ecx, eax
call fcn.00461cf0
mov eax, edi
mov ecx, ebp
call fcn.00461cf0
mov eax, esi
mov ecx, 8
call fcn.00461cf0
mov eax, esi
mov ecx, ebp
call fcn.00461cf0
mov eax, edi
mov ecx, ebp
call fcn.00461cf0
mov eax, edx
mov ecx, ebp
call fcn.00461cf0
mov eax, edi
mov ecx, ebx
call fcn.00461cf0
mov eax, esi
mov ecx, 0x14
call fcn.00461cf0
call fcn.00461d30
mov eax, edx
call fcn.00461cf0
mov eax, 3
mov ecx, eax
call fcn.00461cf0
mov eax, 2
mov ecx, eax
call fcn.00461cf0
mov eax, 1
call fcn.00461cf0
mov eax, ecx
mov ecx, 4
call fcn.00461cf0
xor ecx, ecx
xor eax, eax
jmp 0x507070
inc ecx
cmp ecx, 0xa
jge 0x507741
jae 0x50775a
movzx edx, byte [ecx + eax]
test dl, dl
je 0x50772f
jmp 0x507726
cmp byte [eax + 0xa], 0xff
jne 0x507726
cmp byte [eax + 0xb], 0xff
jne 0x507726
add eax, 0xc
mov ecx, 4
jmp 0x507070
mov eax, ecx
mov ecx, 0xa
call fcn.00461cf0
nop
call fcn.004345c0
add esp, 0x278
ret
call fcn.00460860
jmp fcn.00507000