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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x13c
mov dword [0xd8ff4c], 1
mov eax, dword [0xd8308c]
test eax, eax
je 0x50c254
mov edx, dword [0xd8c578]
test edx, edx
je 0x50c25f
mov edx, dword [esp + 0x150]
movzx eax, byte [edx]
cmp al, 1
je 0x50c3ab
cmp al, 2
je 0x50c5a0
xor ebx, ebx
mov edi, 0xd8c748
mov esi, 0xd8c7f8
mov dword [esp], 0x2d
call fcn.00a5b598
mov dword [edi + ebx*4 + 0xc], eax
mov dword [esp], 0x2d
call fcn.00a5b598
mov dword [esi + ebx*4 + 0xc], eax
add ebx, 1
cmp ebx, 0xb
jle 0x50c26b
xor edx, edx
mov edi, dword [edx*4 + 0xd8c754]
mov dword [edi], 0x20202020
mov dword [edi + 4], 0x20202020
mov dword [edi + 8], 0x20202020
mov dword [edi + 0xc], 0x20202020
mov dword [edi + 0x10], 0x20202020
mov dword [edi + 0x14], 0x20202020
mov dword [edi + 0x18], 0x20202020
mov dword [edi + 0x1c], 0x20202020
mov dword [edi + 0x20], 0x20202020
mov dword [edi + 0x24], 0x20202020
mov dword [edi + 0x28], 0x20202020
mov esi, dword [edx*4 + 0xd8c754]
mov byte [esi + 0x2c], 0
mov ebx, dword [edx*4 + 0xd8c804]
mov dword [ebx], 0x20202020
mov dword [ebx + 4], 0x20202020
mov dword [ebx + 8], 0x20202020
mov dword [ebx + 0xc], 0x20202020
mov dword [ebx + 0x10], 0x20202020
mov dword [ebx + 0x14], 0x20202020
mov dword [ebx + 0x18], 0x20202020
mov dword [ebx + 0x1c], 0x20202020
mov dword [ebx + 0x20], 0x20202020
mov dword [ebx + 0x24], 0x20202020
mov dword [ebx + 0x28], 0x20202020
mov ecx, dword [edx*4 + 0xd8c804]
add edx, 1
cmp edx, 0xb
mov byte [ecx + 0x2c], 0
jle 0x50c295
mov dword [0xd8c748], 0xc
mov dword [0xd8c7f8], 0xc
mov dword [0xd8c8a8], 0xd8c748
mov dword [0xd8c8b8], 0xd8c7f8
mov dword [0xd8c568], 0
mov dword [0xd8c578], 1
mov edx, dword [esp + 0x150]
movzx eax, byte [edx]
cmp al, 1
jne 0x50c196
movzx edi, byte [edx + 2]
movzx esi, byte [edx + 1]
mov ecx, edi
mov edx, esi
movsx ebp, cl
movsx ebx, dl
mov eax, ebp
shl eax, 8
add eax, ebx
test bl, 0x60
mov dword [esp + 0x38], eax
je 0x50c664
mov eax, dword [0xd8c5b8]
test eax, eax
jne 0x50c7d8
cmp dword [0xa80048], 0xfffffffd
je 0x50c19e
mov ebx, esi
sub bl, 1
jle 0x50c4a9
test byte [0xa80044], 2
je 0x50c477
cmp dword [0xa80048], 0xfffffffd
je 0x50c477
mov edx, dword [0xd8c618]
cmp edx, 0xffffffff
je 0x50c477
mov eax, dword [0xd8c608]
mov ecx, dword [0xd8c738]
xor ebx, ebx
lea ebp, [edx + ecx]
cmp eax, 0x2c
cmovl ebx, eax
cmp ebp, 0xc
jle 0x50c436
mov edx, 0xb
sub edx, ecx
lea eax, [edx + ecx]
mov ecx, esi
mov ebp, dword [eax*4 + 0xd8c754]
mov byte [ebx + ebp], cl
mov edx, ebx
mov ecx, edi
shr edx, 4
cmp cl, 0x1f
setg al
movzx esi, al
test edx, esi
je 0x50c583
mov esi, dword [esp + 0x38]
cmp esi, dword [0xd8c5a8]
je 0x50c583
mov eax, ebx
movzx ecx, byte [0xd8c598]
and eax, 8
movsx edx, cl
sar eax, 3
cmp edx, eax
je 0x50cb1f
cmp dword [0xa80048], 0xfffffffd
je 0x50c8b7
mov ebx, dword [0xd8c5b8]
test ebx, ebx
je 0x50c763
mov eax, dword [0xa80040]
cmp eax, 0xd8c628
je 0x50c763
test byte [0xa80044], 1
je 0x50c709
cmp byte [eax - 1], 0xa
je 0x50cf1d
mov dword [esp + 0xc], 0xd8c628
mov dword [esp + 8], 0xc372b6
mov dword [esp + 4], 6
mov dword [esp], 7
call fcn.0040f28e
mov dword [esp], 0
call fcn.00a5b798
mov ebp, 1
mov dword [0xd8c588], eax
mov dword [0xa80040], 0xd8c628
mov dword [esp + 8], 0xff
mov dword [esp + 4], 0
mov dword [esp], 0xd8c628
call fcn.00a5b648
test byte [0xa80044], 2
mov dword [0xd8c728], 0
cmove ebp, dword [0xd8c568]
mov dword [0xd8c568], ebp
mov dword [0xa80048], 0xfffffffd
mov edi, dword [esp + 0x150]
movzx eax, byte [edi]
jmp 0x50c196
cmp eax, 3
jle 0x50c3ec
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0xc372be
mov dword [esp + 4], 8
mov dword [esp], 7
call fcn.0040f28e
jmp 0x50c3ec
cmp dword [0xa80040], 0xd8c628
je 0x50c8fe
mov ecx, dword [0xd8c5b8]
test ecx, ecx
jne 0x50cdab
mov dword [0xa80040], 0xd8c628
mov dword [esp + 8], 0xff
mov dword [esp + 4], 0
mov dword [esp], 0xd8c628
call fcn.00a5b648
movzx ecx, byte [0xd8c598]
mov esi, ebx
movsx eax, cl
and esi, 8
sar esi, 3
cmp eax, esi
je 0x50cb3b
mov edx, dword [esp + 0x150]
movzx eax, byte [edx]
jmp 0x50c196
cmp dword [0xa80048], 0xfffffffd
je 0x50c8b7
cmp dword [0xd8c618], 0xffffffff
je 0x50c8b7
test ebp, 0x40
je 0x50cc16
mov edx, edi
lea ecx, [ebx + ebx]
sar dl, 5
and ecx, 0xe
mov eax, edx
mov edx, 2
mov ebx, eax
mov eax, 6
and ebx, 1
or ecx, ebx
mov ebx, dword [ecx*4 + 0xa80000]
lea edi, [ebx - 1]
lea esi, [ebx - 5]
lea ecx, [ebx - 0xc]
cmp edi, 3
mov edi, 0xfffffffb
mov dword [0xd8c618], ebx
cmova eax, dword [0xd8c738]
cmp esi, 5
cmova edx, eax
cmp ecx, 3
cmova edi, edx
cmp dword [0xd8c5b8], 3
mov dword [0xd8c738], edi
jg 0x50cdd4
mov eax, dword [0xa80040]
cmp eax, 0xd8c628
je 0x50cbcf
mov byte [eax], 0xa
mov dword [0xd8c728], 0
mov eax, dword [0xa80040]
add eax, 1
mov dword [0xa80040], eax
test ebp, 0x10
mov dword [0xd8c608], 1
je 0x50c583
and ebp, 0xf
xor edx, edx
lea ecx, [ebp + ebp]
cmp ecx, 0
jmp 0x50cc0f
add dword [0xd8c608], 1
mov byte [eax], 0x20
add edx, 1
mov eax, dword [0xa80040]
add eax, 1
cmp ecx, edx
mov dword [0xa80040], eax
jg 0x50cbf3
jmp 0x50c583
cmp dword [0xd8c5b8], 3
jg 0x50ced4
mov eax, ebx
and eax, 7
cmp eax, 7
ja 0x50c583
jmp dword [eax*4 + 0xc374e4]
mov dword [esp + 0xc], 0xd8c628
mov dword [esp + 8], 0xc3732d
mov dword [esp + 4], 8
mov dword [esp], 7
call fcn.0040f28e
jmp 0x50c8d1
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0xc37340
mov dword [esp + 4], 8
mov dword [esp], 7
call fcn.0040f28e
jmp 0x50cba9
mov esi, ebx
mov dword [esp + 8], 0xc3736d
mov dword [esp + 4], 8
and esi, 7
mov dword [esp], 7
mov dword [esp + 0xc], esi
call fcn.0040f28e
jmp 0x50cc23
mov byte [eax - 1], 0
jmp 0x50c6e5