Function at 0x50c140
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 0x50c8a2
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 0x50c3a0
cmp eax, 0
jne 0x50c39b
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.00507f80
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 0x50c2b5
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.005080a0
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x44], ebx
mov dword [esp], 0x5c9c80
call fcn.0040da40
mov eax, dword [esp + 4]
mov ebp, 0x5f1550
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 [0x6cfdf8], 0
jne 0x50c2a0
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.0040e410
mov eax, dword [esp + 0x3c]
jmp 0x50c277
mov dword [esp], 0x5d1f00
call fcn.0040da40
mov edi, dword [esp + 4]
mov ecx, edi
cmp edi, 0
je 0x50c394
xor eax, eax
call fcn.00451f7a
mov eax, dword [esp + 0xc8]
mov dword [ecx], eax
mov esi, ecx
mov dword [esp + 0x38], ecx
add esi, 4
cmp esi, 0
je 0x50c38d
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 0x50c342
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.00452680
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 0x50c2f2
mov dword [edi], eax
jmp 0x50c2d0
jmp 0x50c1c0
cmp ecx, 0x17
jne 0x50c80b
cmp eax, 0
je 0x50c7df
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.00508810
movzx ebx, byte [esp + 0x18]
cmp bl, 0
jne 0x50c7df
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 0x50c7bd
cmp eax, 1
jbe 0x50c7b6
mov ebx, ecx
inc ebx
movzx ebp, byte [ebx]
mov edi, ebp
cmp eax, 2
jbe 0x50c7af
mov ebx, ecx
add ebx, 2
movzx ebp, byte [ebx]
mov esi, ebp
cmp eax, 3
jbe 0x50c7a8
mov ebx, ecx
add ebx, 3
movzx ebp, byte [ebx]
mov edx, ebp
cmp eax, 0
mov dword [esp + 0x88], eax
jbe 0x50c7a1
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.00451f7c
lea ebx, [esp + 0x24]
cmp ebx, 0
je 0x50c79a
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 [0x6badc0]
mov edx, dword [0x6badc4]
mov ebx, dword [0x6badc8]
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x94], eax
mov dword [esp + 0xa0], edx
cmp edx, eax
jge 0x50c4fa
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.00452680
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
movzx ebx, byte [esp + 0x1f]
mov edx, ebx
cmp ecx, 0xc
jbe 0x50c793
mov ebx, eax
add ebx, 0xc
mov byte [ebx], dl
movzx ebx, byte [esp + 0x1e]
mov edx, ebx
cmp ecx, 0xd
jbe 0x50c78c
mov ebx, eax
add ebx, 0xd
mov byte [ebx], dl
movzx ebx, byte [esp + 0x1d]
mov edx, ebx
cmp ecx, 0xe
jbe 0x50c785
mov ebx, eax
add ebx, 0xe
mov byte [ebx], dl
movzx ebx, byte [esp + 0x1c]
mov edx, ebx
cmp ecx, 0xf
jbe 0x50c77e
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 0x50c670
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.005080a0
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x44], ebx
mov dword [esp], 0x5c9c80
call fcn.0040da40
mov eax, dword [esp + 4]
mov ebp, 0x5f1560
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 [0x6cfdf8], 0
jne 0x50c65b
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.0040e410
mov eax, dword [esp + 0x3c]
jmp 0x50c632
mov ebx, dword [esp + 0xcc]
mov dword [esp], ebx
mov ebx, dword [esp + 0xd0]
mov dword [esp + 4], ebx
call fcn.005070c0
mov ebx, dword [esp + 8]
mov dword [esp + 0x20], ebx
mov dword [esp], 0x5d4a80
call fcn.0040da40
mov edi, dword [esp + 4]
mov ecx, edi
cmp edi, 0
je 0x50c777
xor eax, eax
call fcn.00451f73
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 0x50c770
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 0x50c725
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.00452680
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 0x50c6d6
mov dword [edi], eax
jmp 0x50c6ad
call fcn.004278c0
ud2
call fcn.004278c0
ud2
call fcn.004278c0
ud2
call fcn.004278c0
ud2
mov dword [ebx], eax
jmp 0x50c4ae
call fcn.004278c0
ud2
call fcn.004278c0
ud2
call fcn.004278c0
ud2
call fcn.004278c0
ud2
mov dword [esp + 0x88], eax
cmp eax, 0x10
jne 0x50c7d4
mov edx, ecx
mov ecx, eax
mov eax, ebp
jmp 0x50c5a3
xor edx, edx
mov ecx, edx
mov eax, edx
jmp 0x50c5a3
mov ebx, dword [0x6bada0]
mov dword [esp + 0xbc], ebx
mov ebx, dword [0x6bada4]
mov dword [esp + 0xc0], ebx
mov ebx, dword [0x6bada8]
mov dword [esp + 0xc4], ebx
jmp 0x50c3ee
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.005080a0
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x44], ebx
mov dword [esp], 0x5c9c80
call fcn.0040da40
mov eax, dword [esp + 4]
mov ebp, 0x5f34be
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 [0x6cfdf8], 0
jne 0x50c88d
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.0040e410
mov eax, dword [esp + 0x3c]
jmp 0x50c864
call fcn.0044fe90
jmp fcn.0050c140