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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x34]
cmp eax, dword [ecx + 8]
jbe 0x50cb62
sub esp, 0xb4
mov ebp, dword [esp + 0xbc]
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0xc0]
xor ebx, ebx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], ebx
xor ebx, ebx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
mov ecx, dword [esp + 0xb8]
cmp ecx, 2
jne 0x50c660
cmp eax, 0
jne 0x50c65b
mov ebp, dword [0x6be818]
mov eax, dword [0x6be81c]
mov edx, dword [0x6be820]
mov dword [esp + 0xbc], ebp
mov dword [esp], ebp
mov dword [esp + 0xc0], eax
mov dword [esp + 4], eax
mov dword [esp + 0xc4], edx
mov dword [esp + 8], edx
call fcn.00508240
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x78], eax
cmp eax, 0
jne 0x50c575
mov ebx, dword [esp + 0xbc]
mov dword [esp], ebx
mov ebx, dword [esp + 0xc0]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xc4]
mov dword [esp + 8], ebx
call fcn.00508360
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x44], ebx
mov dword [esp], 0x5c9f80
call fcn.0040dd70
mov eax, dword [esp + 4]
mov ebp, 0x5f186a
mov dword [eax], ebp
mov dword [eax + 4], 0x10
mov dword [esp + 0x3c], eax
mov ebp, dword [esp + 0x44]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0x40]
cmp byte [0x6cfdd8], 0
jne 0x50c560
mov dword [eax + 8], ebp
xor ebx, ebx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xe0], eax
mov dword [esp + 0xdc], 0x6a6a10
add esp, 0xb4
ret
lea esi, [eax + 8]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0040e740
mov eax, dword [esp + 0x3c]
jmp 0x50c537
mov dword [esp], 0x5d2200
call fcn.0040dd70
mov edi, dword [esp + 4]
mov ecx, edi
cmp edi, 0
je 0x50c654
xor eax, eax
call fcn.004522aa
mov eax, dword [esp + 0xc8]
mov dword [ecx], eax
mov esi, ecx
mov dword [esp + 0x38], ecx
add esi, 4
cmp esi, 0
je 0x50c64d
mov eax, 4
mov ecx, 4
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xa4], ecx
mov ebp, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x80]
mov dword [esp + 0x98], ebx
mov dword [esp + 0xa0], eax
mov dword [esp + 0x94], edx
cmp edx, eax
jge 0x50c602
mov eax, edx
mov dword [esp + 0x9c], esi
mov dword [esp], esi
mov dword [esp + 0x90], ebp
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call fcn.004529b0
mov ebx, dword [esp + 0x38]
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xd4], 0x6a6d30
xor ebx, ebx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
add esp, 0xb4
ret
mov dword [esi], eax
jmp 0x50c5b2
mov dword [edi], eax
jmp 0x50c590
jmp 0x50c480
cmp ecx, 0x17
jne 0x50cacb
cmp eax, 0
je 0x50ca9f
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov ebx, dword [0x6be818]
mov dword [esp + 0xc], ebx
mov ebx, dword [0x6be81c]
mov dword [esp + 0x10], ebx
mov ebx, dword [0x6be820]
mov dword [esp + 0x14], ebx
call fcn.00508ad0
movzx ebx, byte [esp + 0x18]
cmp bl, 0
jne 0x50ca9f
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x84], ecx
mov eax, dword [esp + 0xc0]
mov ebp, dword [esp + 0xc4]
mov dword [esp + 0x8c], ebp
xor ebx, ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
cmp eax, 4
jne 0x50ca7d
cmp eax, 1
jbe 0x50ca76
mov ebx, ecx
inc ebx
movzx ebp, byte [ebx]
mov edi, ebp
cmp eax, 2
jbe 0x50ca6f
mov ebx, ecx
add ebx, 2
movzx ebp, byte [ebx]
mov esi, ebp
cmp eax, 3
jbe 0x50ca68
mov ebx, ecx
add ebx, 3
movzx ebp, byte [ebx]
mov edx, ebp
cmp eax, 0
mov dword [esp + 0x88], eax
jbe 0x50ca61
movzx ebp, byte [ecx]
xchg ebp, eax
mov byte [esp + 0x1f], al
xchg ebp, eax
xchg edi, eax
mov byte [esp + 0x1e], al
xchg edi, eax
xchg esi, eax
mov byte [esp + 0x1d], al
xchg esi, eax
mov byte [esp + 0x1c], dl
xor ebx, ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
lea edi, [esp + 0x24]
xor eax, eax
call fcn.004522ac
lea ebx, [esp + 0x24]
cmp ebx, 0
je 0x50ca5a
mov eax, 0x10
mov ecx, 0x10
mov dword [esp + 0x60], ebx
mov ebp, ebx
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
mov dword [esp + 0x98], ecx
mov esi, dword [0x6badb8]
mov edx, dword [0x6badbc]
mov ebx, dword [0x6badc0]
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x94], eax
mov dword [esp + 0xa0], edx
cmp edx, eax
jge 0x50c7ba
mov eax, edx
mov dword [esp + 0x90], ebp
mov dword [esp], ebp
mov dword [esp + 0x9c], esi
mov dword [esp + 4], esi
mov dword [esp + 8], eax
call fcn.004529b0
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
movzx ebx, byte [esp + 0x1f]
mov edx, ebx
cmp ecx, 0xc
jbe 0x50ca53
mov ebx, eax
add ebx, 0xc
mov byte [ebx], dl
movzx ebx, byte [esp + 0x1e]
mov edx, ebx
cmp ecx, 0xd
jbe 0x50ca4c
mov ebx, eax
add ebx, 0xd
mov byte [ebx], dl
movzx ebx, byte [esp + 0x1d]
mov edx, ebx
cmp ecx, 0xe
jbe 0x50ca45
mov ebx, eax
add ebx, 0xe
mov byte [ebx], dl
movzx ebx, byte [esp + 0x1c]
mov edx, ebx
cmp ecx, 0xf
jbe 0x50ca3e
mov ebx, eax
add ebx, 0xf
mov byte [ebx], dl
mov edx, eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], eax
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x6c], edx
cmp edx, 0
jne 0x50c930
mov ebx, dword [esp + 0xbc]
mov dword [esp], ebx
mov ebx, dword [esp + 0xc0]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xc4]
mov dword [esp + 8], ebx
call fcn.00508360
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x44], ebx
mov dword [esp], 0x5c9f80
call fcn.0040dd70
mov eax, dword [esp + 4]
mov ebp, 0x5f187a
mov dword [eax], ebp
mov dword [eax + 4], 0x10
mov dword [esp + 0x3c], eax
mov ebp, dword [esp + 0x44]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0x40]
cmp byte [0x6cfdd8], 0
jne 0x50c91b
mov dword [eax + 8], ebp
xor ebx, ebx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xe0], eax
mov dword [esp + 0xdc], 0x6a6a10
add esp, 0xb4
ret
lea esi, [eax + 8]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0040e740
mov eax, dword [esp + 0x3c]
jmp 0x50c8f2
mov ebx, dword [esp + 0xcc]
mov dword [esp], ebx
mov ebx, dword [esp + 0xd0]
mov dword [esp + 4], ebx
call fcn.00507380
mov ebx, dword [esp + 8]
mov dword [esp + 0x20], ebx
mov dword [esp], 0x5d4d80
call fcn.0040dd70
mov edi, dword [esp + 4]
mov ecx, edi
cmp edi, 0
je 0x50ca37
xor eax, eax
call fcn.004522a3
mov eax, dword [esp + 0xc8]
mov dword [ecx], eax
mov eax, dword [esp + 0x20]
mov dword [ecx + 4], eax
mov esi, ecx
mov dword [esp + 0x34], ecx
add esi, 8
cmp esi, 0
je 0x50ca30
mov ecx, 0x10
mov eax, 0x10
mov dword [esp + 0x9c], esi
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], eax
mov dword [esp + 0xb0], eax
mov ebp, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x98], ebx
mov dword [esp + 0xac], ecx
mov eax, ecx
mov dword [esp + 0x94], edx
cmp edx, ecx
jge 0x50c9e5
mov eax, edx
mov dword [esp + 0xa8], esi
mov dword [esp], esi
mov dword [esp + 0x90], ebp
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call fcn.004529b0
mov ebx, dword [esp + 0x34]
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xd4], 0x6a6d50
xor ebx, ebx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
add esp, 0xb4
ret
mov dword [esi], eax
jmp 0x50c996
mov dword [edi], eax
jmp 0x50c96d
call fcn.00427bf0
ud2
call fcn.00427bf0
ud2
call fcn.00427bf0
ud2
call fcn.00427bf0
ud2
mov dword [ebx], eax
jmp 0x50c76e
call fcn.00427bf0
ud2
call fcn.00427bf0
ud2
call fcn.00427bf0
ud2
call fcn.00427bf0
ud2
mov dword [esp + 0x88], eax
cmp eax, 0x10
jne 0x50ca94
mov edx, ecx
mov ecx, eax
mov eax, ebp
jmp 0x50c863
xor edx, edx
mov ecx, edx
mov eax, edx
jmp 0x50c863
mov ebx, dword [0x6bad98]
mov dword [esp + 0xbc], ebx
mov ebx, dword [0x6bad9c]
mov dword [esp + 0xc0], ebx
mov ebx, dword [0x6bada0]
mov dword [esp + 0xc4], ebx
jmp 0x50c6ae
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.00508360
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x44], ebx
mov dword [esp], 0x5c9f80
call fcn.0040dd70
mov eax, dword [esp + 4]
mov ebp, 0x5f37da
mov dword [eax], ebp
mov dword [eax + 4], 0x16
mov dword [esp + 0x3c], eax
mov ebp, dword [esp + 0x44]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0x40]
cmp byte [0x6cfdd8], 0
jne 0x50cb4d
mov dword [eax + 8], ebp
xor ebx, ebx
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xe0], eax
mov dword [esp + 0xdc], 0x6a6a10
add esp, 0xb4
ret
lea esi, [eax + 8]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0040e740
mov eax, dword [esp + 0x3c]
jmp 0x50cb24
call fcn.004501c0
jmp fcn.0050c400