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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x38]
cmp eax, dword [ecx + 8]
jbe 0x50cc9e
sub esp, 0xb8
mov edx, dword [esp + 0xd8]
mov ecx, dword [esp + 0xe4]
mov ebx, edx
sub edx, ecx
lea eax, [ecx - 1]
cmp eax, ecx
jae 0x50cc98
mov ebp, dword [esp + 0xe0]
mov esi, dword [ebp + ecx*4 - 4]
nop
nop
cmp esi, 0x10000
jb 0x50cbf5
shr esi, 0x10
mov edi, 0x10
cmp esi, 0x100
jb 0x50c43c
shr esi, 8
add edi, 8
cmp esi, 0x100
jae 0x50cc8c
mov dword [esp + 0x6c], edx
mov dword [esp + 0x74], eax
mov dword [esp + 0x68], edi
lea eax, [0xd892e0]
movzx eax, byte [eax + esi]
mov dword [esp + 0x70], eax
mov dword [esp], ecx
call fcn.0050c290
mov eax, dword [esp + 4]
mov dword [esp + 0x9c], eax
mov ecx, dword [eax + 4]
mov dword [esp + 0x4c], ecx
mov edx, dword [eax]
mov dword [esp + 0xa4], edx
mov ebx, dword [eax + 8]
mov dword [esp + 0x50], ebx
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov ebp, dword [esp + 0xe0]
mov dword [esp + 0xc], ebp
mov ebp, dword [esp + 0xe4]
mov dword [esp + 0x10], ebp
mov esi, dword [esp + 0xe8]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x70]
lea esi, [edi + esi - 0x20]
xchg esi, ebx
neg ebx
xchg esi, ebx
mov dword [esp + 0x70], esi
mov dword [esp + 0x18], esi
call fcn.0051a930
mov ecx, dword [esp + 0xd8]
lea eax, [ecx + 1]
mov edx, dword [esp + 0xd0]
cmp eax, edx
jg 0x50cb80
ja 0x50cc85
mov ebx, dword [esp + 0xc8]
cmp ecx, edx
ja 0x50cc80
mov dword [esp + 0x3c], eax
mov dword [esp + 0xb0], ebx
mov dword [esp + 0x40], edx
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x18], eax
call fcn.0051a930
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0x3c]
cmp ecx, edx
jae 0x50cc77
mov ebx, dword [esp + 0xb0]
mov dword [ebx + ecx*4], eax
mov ecx, dword [esp + 0xc4]
test ecx, ecx
jle 0x50cb6e
lea eax, [ecx - 1]
cmp eax, ecx
jae 0x50cc72
mov ebp, dword [esp + 0xbc]
lea esi, [ebp + ecx*4 - 4]
mov edi, dword [esp + 0x40]
lea eax, [edi - 1]
cmp eax, edi
jae 0x50cc6b
lea eax, [ebx + edi*4 - 4]
cmp esi, eax
sete al
test al, al
je 0x50cb67
xor eax, eax
xor ecx, ecx
mov ebp, dword [esp + 0x6c]
lea esi, [ebp + 1]
cmp esi, ecx
jg 0x50cb00
ja 0x50cc60
mov dword [esp + 0x2c], esi
mov dword [esp + 0xac], eax
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0xe4]
lea ebx, [edx + 1]
mov dword [esp], ebx
call fcn.0050c290
mov eax, dword [esp + 4]
mov edx, dword [eax + 8]
mov ecx, dword [eax]
mov ebx, dword [eax + 4]
mov ebp, dword [esp + 0x74]
mov esi, dword [esp + 0x4c]
cmp ebp, esi
jae 0x50cc57
mov dword [esp + 0xa0], eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x58], ebx
mov ebp, dword [esp + 0xe4]
mov edi, dword [esp + 0xa4]
mov ebx, dword [edi + ebp*4 - 4]
mov dword [esp + 0x48], ebx
jmp 0x50c842
mov dword [esp + 0x80], eax
mov dword [esp + 0x54], ebx
mov dword [esp], eax
mov ecx, dword [esp + 0x44]
mov dword [esp + 4], ecx
call fcn.0051a810
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x54]
mov edx, dword [esp + 0xe4]
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x64], eax
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x64]
cmp eax, esi
jbe 0x50c9b8
mov eax, 1
test al, al
je 0x50c9a9
mov eax, dword [esp + 0x60]
dec eax
mov ecx, edi
mov edi, dword [esp + 0x48]
lea ebx, [esi + edi]
cmp ebx, esi
jae 0x50c633
mov ebx, dword [esp + 0x5c]
cmp edx, ebx
ja 0x50cc2a
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0xa8]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0xc], ebp
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x10], esi
mov edi, dword [esp + 0x50]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0
call fcn.0051a9d0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0x58]
cmp ecx, edx
jae 0x50cc21
mov ebx, dword [esp + 0xa8]
mov dword [ebx + ecx*4], eax
mov eax, dword [esp + 0x6c]
lea ebp, [eax + edx]
mov esi, dword [esp + 0x40]
cmp ebp, esi
ja 0x50cc18
cmp eax, ebp
ja 0x50cc11
sub esi, eax
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
shl eax, 2
sar esi, 0x1f
and esi, eax
mov ebp, dword [esp + 0xb0]
add esi, ebp
mov ebp, dword [esp + 0x6c]
mov ebx, dword [esp + 0x3c]
cmp ebp, ebx
ja 0x50cc08
mov dword [esp + 0x7c], edi
mov dword [esp + 0xb4], esi
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], esi
sub ebx, ebp
mov dword [esp + 0x78], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edi
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x20], edx
call fcn.0051a890
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x50c92d
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jae 0x50cbfc
mov edx, dword [esp + 0xac]
mov dword [edx + ebx*4], eax
lea eax, [ebx - 1]
mov ebx, dword [esp + 0xb0]
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x5c]
mov ebx, ebp
mov ebp, dword [esp + 0xe4]
mov esi, edi
mov edi, dword [esp + 0xa4]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0x6c]
test esi, esi
jl 0x50c9e0
lea edi, [ebp + esi]
mov ebp, dword [esp + 0x3c]
cmp edi, ebp
jae 0x50cc4e
mov dword [esp + 0x74], edi
mov ebp, dword [esp + 0xb0]
mov edi, dword [ebp + edi*4]
cmp edi, ebx
je 0x50c9cb
mov edx, dword [esp + 0xe4]
lea esi, [esi + edx - 1]
mov edx, dword [esp + 0x3c]
cmp esi, edx
jae 0x50cc45
mov eax, dword [ebp + esi*4]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.0051a830
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xe4]
lea ebx, [edx - 2]
mov ebp, dword [esp + 0x4c]
cmp ebx, ebp
jae 0x50cc3c
mov dword [esp + 0x60], eax
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0xa4]
mov ebx, dword [ecx + edx*4 - 8]
mov dword [esp + 0x44], ebx
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.0051a810
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xe4]
mov ebx, dword [esp + 0x6c]
lea ebp, [ebx + edx - 2]
mov esi, dword [esp + 0x3c]
cmp ebp, esi
jae 0x50cc33
mov edi, dword [esp + 0xb0]
mov ebp, dword [edi + ebp*4]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x94]
jmp 0x50c6b2
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x74]
cmp eax, ecx
ja 0x50cc03
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
mov ecx, dword [esp + 0xe4]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x7c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x1c], edx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x20], ebx
call fcn.0051a850
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0xb0]
mov edx, dword [ecx + eax*4]
add edx, dword [esp + 0x24]
mov dword [ecx + eax*4], edx
mov eax, dword [esp + 0x60]
dec eax
jmp 0x50c7ea
mov ecx, edi
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x60]
jmp 0x50c6e1
jne 0x50c9c4
cmp ecx, ebp
seta al
jmp 0x50c6c3
xor eax, eax
jmp 0x50c6c3
mov ecx, ebp
mov edx, dword [esp + 0xe4]
mov edi, ebx
mov eax, 0xffffffff
jmp 0x50c6e1
nop
lea eax, [0xdc37d0]
mov dword [esp], eax
lea ecx, [0x97cc40]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x9c]
mov dword [esp + 8], edx
call fcn.004729e0
nop
lea eax, [0xdc37d0]
mov dword [esp], eax
lea eax, [0x97cc40]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 8], eax
call fcn.004729e0
mov eax, dword [esp + 0xac]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 8], eax
call fcn.005089d0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x7c], ecx
mov edx, dword [esp + 0xc]
mov dword [esp + 0xb4], edx
mov ebx, dword [esp + 0xb0]
mov dword [esp], ebx
mov ebp, dword [esp + 0x3c]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x40]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], esi
mov edi, dword [esp + 0x70]
mov dword [esp + 0x18], edi
call fcn.0051a980
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
call fcn.005089d0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0xec], ebx
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0xf0], ebx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xf8], edx
mov dword [esp + 0xfc], ecx
mov dword [esp + 0x100], eax
add esp, 0xb8
ret
test ebp, ebp
jne 0x50cb35
lea eax, [0x8eb040]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.00440500
mov eax, dword [esp + 0xc]
mov esi, 1
mov ecx, 1
jmp 0x50c5c5
mov dword [esp + 0x2c], esi
lea eax, [0x8eb040]
mov dword [esp], eax
mov dword [esp + 4], esi
lea eax, [ebp + 5]
mov dword [esp + 0x30], eax
mov dword [esp + 8], eax
call fcn.00440500
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
jmp 0x50c5c5
mov eax, ebp
jmp 0x50c5b0
mov ebp, dword [esp + 0xbc]
mov edi, dword [esp + 0x40]
xor eax, eax
jmp 0x50c5a4
test ecx, ecx
jne 0x50cbbc
lea eax, [0x8eb040]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.00440500
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0xd8]
mov eax, 1
mov edx, 1
jmp 0x50c4fd
mov dword [esp + 0x28], eax
lea edx, [0x8eb040]
mov dword [esp], edx
mov dword [esp + 4], eax
lea ebx, [ecx + 5]
mov dword [esp + 0x34], ebx
mov dword [esp + 8], ebx
call fcn.00440500
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0xd8]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
jmp 0x50c4fd
xor edi, edi
jmp 0x50c42e
mov eax, ebx
call fcn.00457060
call fcn.004570c0
mov eax, ebp
mov ecx, ebx
call fcn.004570c0
mov ecx, ebp
call fcn.004570c0
mov ecx, ebp
mov edx, esi
call fcn.004570a0
mov eax, ecx
mov ecx, edx
call fcn.00457060
mov ecx, edx
mov edx, ebx
call fcn.004570a0
mov eax, ebp
mov ecx, esi
call fcn.00457060
mov eax, ebx
mov ecx, ebp
call fcn.00457060
mov eax, esi
mov ecx, edx
call fcn.00457060
mov eax, edi
mov ecx, ebp
call fcn.00457060
mov eax, ebp
mov ecx, esi
call fcn.00457060
mov eax, ecx
mov ecx, esi
mov edx, eax
call fcn.004570a0
mov ecx, edi
call fcn.00457060
call fcn.00457060
mov eax, ecx
mov ecx, edx
call fcn.00457060
call fcn.004570a0
mov ecx, eax
call fcn.004570a0
mov eax, esi
mov ecx, 0x100
call fcn.00457070
call fcn.00457060
nop
call fcn.004557a0
jmp fcn.0050c3d0