Function at 0x50c1a0
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 0x50c902
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 0x50c400
cmp eax, 0
jne 0x50c3fb
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.00507fe0
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 0x50c315
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.00508100
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x44], ebx
mov dword [esp], 0x5c9ce0
call fcn.0040db10
mov eax, dword [esp + 4]
mov ebp, 0x5f15b0
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 0x50c300
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.0040e4e0
mov eax, dword [esp + 0x3c]
jmp 0x50c2d7
mov dword [esp], 0x5d1f60
call fcn.0040db10
mov edi, dword [esp + 4]
mov ecx, edi
cmp edi, 0
je 0x50c3f4
xor eax, eax
call fcn.0045204a
mov eax, dword [esp + 0xc8]
mov dword [ecx], eax
mov esi, ecx
mov dword [esp + 0x38], ecx
add esi, 4
cmp esi, 0
je 0x50c3ed
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 0x50c3a2
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.00452750
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 0x50c352
mov dword [edi], eax
jmp 0x50c330
jmp 0x50c220
cmp ecx, 0x17
jne 0x50c86b
cmp eax, 0
je 0x50c83f
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.00508870
movzx ebx, byte [esp + 0x18]
cmp bl, 0
jne 0x50c83f
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 0x50c81d
cmp eax, 1
jbe 0x50c816
mov ebx, ecx
inc ebx
movzx ebp, byte [ebx]
mov edi, ebp
cmp eax, 2
jbe 0x50c80f
mov ebx, ecx
add ebx, 2
movzx ebp, byte [ebx]
mov esi, ebp
cmp eax, 3
jbe 0x50c808
mov ebx, ecx
add ebx, 3
movzx ebp, byte [ebx]
mov edx, ebp
cmp eax, 0
mov dword [esp + 0x88], eax
jbe 0x50c801
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.0045204c
lea ebx, [esp + 0x24]
cmp ebx, 0
je 0x50c7fa
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 0x50c55a
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.00452750
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
movzx ebx, byte [esp + 0x1f]
mov edx, ebx
cmp ecx, 0xc
jbe 0x50c7f3
mov ebx, eax
add ebx, 0xc
mov byte [ebx], dl
movzx ebx, byte [esp + 0x1e]
mov edx, ebx
cmp ecx, 0xd
jbe 0x50c7ec
mov ebx, eax
add ebx, 0xd
mov byte [ebx], dl
movzx ebx, byte [esp + 0x1d]
mov edx, ebx
cmp ecx, 0xe
jbe 0x50c7e5
mov ebx, eax
add ebx, 0xe
mov byte [ebx], dl
movzx ebx, byte [esp + 0x1c]
mov edx, ebx
cmp ecx, 0xf
jbe 0x50c7de
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 0x50c6d0
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.00508100
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x44], ebx
mov dword [esp], 0x5c9ce0
call fcn.0040db10
mov eax, dword [esp + 4]
mov ebp, 0x5f15c0
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 0x50c6bb
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.0040e4e0
mov eax, dword [esp + 0x3c]
jmp 0x50c692
mov ebx, dword [esp + 0xcc]
mov dword [esp], ebx
mov ebx, dword [esp + 0xd0]
mov dword [esp + 4], ebx
call fcn.00507120
mov ebx, dword [esp + 8]
mov dword [esp + 0x20], ebx
mov dword [esp], 0x5d4ae0
call fcn.0040db10
mov edi, dword [esp + 4]
mov ecx, edi
cmp edi, 0
je 0x50c7d7
xor eax, eax
call fcn.00452043
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 0x50c7d0
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 0x50c785
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.00452750
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 0x50c736
mov dword [edi], eax
jmp 0x50c70d
call fcn.00427990
ud2
call fcn.00427990
ud2
call fcn.00427990
ud2
call fcn.00427990
ud2
mov dword [ebx], eax
jmp 0x50c50e
call fcn.00427990
ud2
call fcn.00427990
ud2
call fcn.00427990
ud2
call fcn.00427990
ud2
mov dword [esp + 0x88], eax
cmp eax, 0x10
jne 0x50c834
mov edx, ecx
mov ecx, eax
mov eax, ebp
jmp 0x50c603
xor edx, edx
mov ecx, edx
mov eax, edx
jmp 0x50c603
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 0x50c44e
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.00508100
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x44], ebx
mov dword [esp], 0x5c9ce0
call fcn.0040db10
mov eax, dword [esp + 4]
mov ebp, 0x5f350a
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 0x50c8ed
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.0040e4e0
mov eax, dword [esp + 0x3c]
jmp 0x50c8c4
call fcn.0044ff60
jmp fcn.0050c1a0