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

Disassembly:
test dword [0x7eeab0], 0xffffff80
jne 0x500074
test dword [0x7eeab0], 0xffffffff
jne 0x5003f8
call fcn.006a7fbc
jmp fcn.0050004c
push edi
push esi
push ebp
push ebx
sub esp, 0x14
mov esi, ecx
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
test edi, edi
jne 0x500098
mov eax, 1
add esp, 0x14
pop ebx
pop ebp
pop esi
pop edi
ret 0xc
mov dword [esi + 0xc], ebp
mov dword [esi + 0x1b], edi
xor eax, eax
xor edx, edx
mov ecx, dword [edx + 0x7bd26c]
test ecx, ecx
je 0x5000cb
movzx ecx, byte [ecx + 0x10]
test cl, 2
jne 0x5000cb
add edx, 0x94
inc eax
cmp eax, 0x400
jl 0x5000a2
mov edx, 0
cmove eax, edx
movsx ebx, ax
mov word [esi + 0x21], bx
imul eax, ebx, 0x94
lea ebx, [eax + 0x7bd1e0]
mov dword [ebx + 0x8c], esi
xor edx, edx
mov word [esi + 0x1f], dx
and byte [esi + 0x10], 0xfd
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x5000fc
push 1
call fcn.004ff708
push 1
push 4
mov ecx, 0x700b18
call fcn.004e5c2c
mov dword [esi + 8], eax
mov eax, dword [esp + 0x30]
push eax
push edi
push ebx
mov ecx, ebp
call fcn.0054d018
cmp eax, 1
je 0x500128
movsx edx, word [ebx + 8]
test edx, edx
jl 0x500137
mov eax, 1
add esp, 0x14
pop ebx
pop ebp
pop esi
pop edi
ret 0xc
movsx eax, word [ebx + 0xa]
cmp eax, 0x10
jne 0x500128
neg edx
movsx edi, dx
cmp edi, dword [ebx + 0x84]
jle 0x50016e
mov ecx, dword [ebx + 0x80]
call fcn.004db958
mov ecx, edi
shl ecx, 7
call fcn.004dc288
mov dword [ebx + 0x80], eax
mov dword [ebx + 0x84], edi
mov ecx, dword [0x7e22e0]
test ecx, ecx
je 0x500188
movsx edx, word [0x7e22e4]
cmp edi, edx
jle 0x50019f
call fcn.004db958
lea ecx, [edi + edi]
call fcn.004dc288
mov ecx, eax
mov dword [0x7e22e0], ecx
mov word [0x7e22e4], di
mov edx, dword [ebx + 0x80]
mov eax, dword [ebx]
mov dword [edx], eax
mov eax, dword [ebx + 4]
mov dword [edx + 4], eax
mov eax, dword [ebx + 8]
mov dword [edx + 8], eax
mov eax, dword [ebx + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [ebx + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [ebx + 0x14]
mov dword [edx + 0x14], eax
mov eax, dword [ebx + 0x18]
mov dword [edx + 0x18], eax
mov eax, dword [ebx + 0x1c]
mov dword [edx + 0x1c], eax
mov eax, dword [ebx + 0x20]
mov dword [edx + 0x20], eax
mov eax, dword [ebx + 0x24]
mov dword [edx + 0x24], eax
mov eax, dword [ebx + 0x28]
mov dword [edx + 0x28], eax
mov eax, dword [ebx + 0x2c]
mov dword [edx + 0x2c], eax
mov eax, dword [ebx + 0x30]
mov dword [edx + 0x30], eax
mov eax, dword [ebx + 0x34]
mov dword [edx + 0x34], eax
mov eax, dword [ebx + 0x38]
mov dword [edx + 0x38], eax
mov eax, dword [ebx + 0x3c]
mov dword [edx + 0x3c], eax
mov eax, dword [ebx + 0x40]
mov dword [edx + 0x40], eax
mov eax, dword [ebx + 0x44]
mov dword [edx + 0x44], eax
mov eax, dword [ebx + 0x48]
mov dword [edx + 0x48], eax
mov eax, dword [ebx + 0x4c]
mov dword [edx + 0x4c], eax
mov eax, dword [ebx + 0x50]
mov dword [edx + 0x50], eax
mov eax, dword [ebx + 0x54]
mov dword [edx + 0x54], eax
mov eax, dword [ebx + 0x58]
mov dword [edx + 0x58], eax
mov eax, dword [ebx + 0x5c]
mov dword [edx + 0x5c], eax
mov eax, dword [ebx + 0x60]
mov dword [edx + 0x60], eax
mov eax, dword [ebx + 0x64]
mov dword [edx + 0x64], eax
mov eax, dword [ebx + 0x68]
mov dword [edx + 0x68], eax
mov eax, dword [ebx + 0x6c]
mov dword [edx + 0x6c], eax
mov eax, dword [ebx + 0x70]
mov dword [edx + 0x70], eax
mov eax, dword [ebx + 0x74]
mov dword [edx + 0x74], eax
mov eax, dword [ebx + 0x78]
mov dword [edx + 0x78], eax
mov eax, dword [ebx + 0x7c]
mov dword [edx + 0x7c], eax
lea eax, [edx + 0x80]
mov dword [esp + 8], eax
mov dword [ebx + 0x88], eax
mov eax, dword [edx + 4]
mov dword [esi + 4], eax
mov eax, dword [edx + 0xc]
mov dword [esp + 4], eax
movzx edx, word [edx + 0xa]
shl edx, 0x10
add edx, 0xfff00000
shr edx, 0x10
mov word [ecx], dx
cmp edi, 1
jle 0x5003e0
mov edx, 1
mov ecx, dword [esp + 8]
lea ecx, [ecx + 0x10]
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], ebx
mov dword [esp], esi
mov ebp, edx
mov esi, edx
mov ebx, ecx
mov edx, eax
mov edi, dword [esp + 8]
jmp 0x5002cd
add ebx, 0x80
add edi, 0x80
mov eax, dword [esp + 0x30]
push eax
push edx
push edi
mov ecx, dword [esp + 0x34]
call fcn.0054d018
cmp eax, 1
je 0x500089
mov edx, dword [edi + 0xc]
mov ecx, dword [0x7e22e0]
movzx eax, word [edi + 0xa]
shl eax, 0x10
add eax, 0xfff00000
shr eax, 0x10
mov word [ecx + ebp*2], ax
inc ebp
movsx eax, word [edi + 8]
movsx ecx, si
cmp eax, ecx
jne 0x500089
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x88]
mov ecx, dword [ebx]
mov dword [eax], ecx
mov ecx, dword [ebx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [ebx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [ebx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebx + 0x10]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebx + 0x14]
mov dword [eax + 0x14], ecx
mov ecx, dword [ebx + 0x18]
mov dword [eax + 0x18], ecx
mov ecx, dword [ebx + 0x1c]
mov dword [eax + 0x1c], ecx
mov ecx, dword [ebx + 0x20]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebx + 0x24]
mov dword [eax + 0x24], ecx
mov ecx, dword [ebx + 0x28]
mov dword [eax + 0x28], ecx
mov ecx, dword [ebx + 0x2c]
mov dword [eax + 0x2c], ecx
mov ecx, dword [ebx + 0x30]
mov dword [eax + 0x30], ecx
mov ecx, dword [ebx + 0x34]
mov dword [eax + 0x34], ecx
mov ecx, dword [ebx + 0x38]
mov dword [eax + 0x38], ecx
mov ecx, dword [ebx + 0x3c]
mov dword [eax + 0x3c], ecx
mov ecx, dword [ebx + 0x40]
mov dword [eax + 0x40], ecx
mov ecx, dword [ebx + 0x44]
mov dword [eax + 0x44], ecx
mov ecx, dword [ebx + 0x48]
mov dword [eax + 0x48], ecx
mov ecx, dword [ebx + 0x4c]
mov dword [eax + 0x4c], ecx
mov ecx, dword [ebx + 0x50]
mov dword [eax + 0x50], ecx
mov ecx, dword [ebx + 0x54]
mov dword [eax + 0x54], ecx
mov ecx, dword [ebx + 0x58]
mov dword [eax + 0x58], ecx
mov ecx, dword [ebx + 0x5c]
mov dword [eax + 0x5c], ecx
mov ecx, dword [ebx + 0x60]
mov dword [eax + 0x60], ecx
mov ecx, dword [ebx + 0x64]
mov dword [eax + 0x64], ecx
mov ecx, dword [ebx + 0x68]
mov dword [eax + 0x68], ecx
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 0x6c], ecx
mov eax, dword [esp + 0x10]
add dword [eax + 0x88], 0x70
inc esi
movsx ecx, si
mov eax, dword [esp + 0xc]
cmp eax, ecx
jg 0x5002c1
mov esi, dword [esp]
or byte [esi + 0x10], 2
mov ecx, esi
call fcn.00500778
add esp, 0x14
pop ebx
pop ebp
pop esi
pop edi
ret 0xc
push edi
push esi
push ebp
push ebx
sub esp, 0x14
mov ebp, ecx
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
test esi, esi
jne 0x50041c
mov eax, 1
add esp, 0x14
pop ebx
pop ebp
pop esi
pop edi
ret 0xc
mov dword [ebp + 0xc], ebx
mov dword [ebp + 0x1b], esi
xor eax, eax
xor edx, edx
mov ecx, dword [edx + 0x7bd26c]
test ecx, ecx
je 0x50044e
movzx ecx, byte [ecx + 0x10]
test cl, 2
jne 0x50044e
add edx, 0x94
inc eax
cmp eax, 0x400
jl 0x500426
jne 0x50044e
mov eax, 0
movsx edi, ax
mov word [ebp + 0x21], di
imul eax, edi, 0x94
lea edi, [eax + 0x7bd1e0]
mov dword [edi + 0x8c], ebp
xor edx, edx
mov word [ebp + 0x1f], dx
and byte [ebp + 0x10], 0xfd
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x50047f
push 1
call fcn.004ff708
push 1
push 4
mov ecx, 0x700b18
call fcn.004e5c2c
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x30]
push eax
push esi
push edi
mov ecx, ebx
call fcn.0054d018
cmp eax, 1
je 0x5004ab
movsx edx, word [edi + 8]
test edx, edx
jl 0x5004ba
mov eax, 1
add esp, 0x14
pop ebx
pop ebp
pop esi
pop edi
ret 0xc
movsx eax, word [edi + 0xa]
cmp eax, 0x10
jne 0x5004ab
neg edx
movsx esi, dx
cmp esi, dword [edi + 0x84]
jle 0x5004f1
mov ecx, dword [edi + 0x80]
call fcn.004db958
mov ecx, esi
shl ecx, 7
call fcn.004dc288
mov dword [edi + 0x80], eax
mov dword [edi + 0x84], esi
mov ecx, dword [0x7e22e0]
test ecx, ecx
je 0x50050b
movsx edx, word [0x7e22e4]
cmp esi, edx
jle 0x500522
call fcn.004db958
lea ecx, [esi + esi]
call fcn.004dc288
mov ecx, eax
mov dword [0x7e22e0], ecx
mov word [0x7e22e4], si
mov edx, dword [edi + 0x80]
mov eax, dword [edi]
mov dword [edx], eax
mov eax, dword [edi + 4]
mov dword [edx + 4], eax
mov eax, dword [edi + 8]
mov dword [edx + 8], eax
mov eax, dword [edi + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [edi + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [edi + 0x14]
mov dword [edx + 0x14], eax
mov eax, dword [edi + 0x18]
mov dword [edx + 0x18], eax
mov eax, dword [edi + 0x1c]
mov dword [edx + 0x1c], eax
mov eax, dword [edi + 0x20]
mov dword [edx + 0x20], eax
mov eax, dword [edi + 0x24]
mov dword [edx + 0x24], eax
mov eax, dword [edi + 0x28]
mov dword [edx + 0x28], eax
mov eax, dword [edi + 0x2c]
mov dword [edx + 0x2c], eax
mov eax, dword [edi + 0x30]
mov dword [edx + 0x30], eax
mov eax, dword [edi + 0x34]
mov dword [edx + 0x34], eax
mov eax, dword [edi + 0x38]
mov dword [edx + 0x38], eax
mov eax, dword [edi + 0x3c]
mov dword [edx + 0x3c], eax
mov eax, dword [edi + 0x40]
mov dword [edx + 0x40], eax
mov eax, dword [edi + 0x44]
mov dword [edx + 0x44], eax
mov eax, dword [edi + 0x48]
mov dword [edx + 0x48], eax
mov eax, dword [edi + 0x4c]
mov dword [edx + 0x4c], eax
mov eax, dword [edi + 0x50]
mov dword [edx + 0x50], eax
mov eax, dword [edi + 0x54]
mov dword [edx + 0x54], eax
mov eax, dword [edi + 0x58]
mov dword [edx + 0x58], eax
mov eax, dword [edi + 0x5c]
mov dword [edx + 0x5c], eax
mov eax, dword [edi + 0x60]
mov dword [edx + 0x60], eax
mov eax, dword [edi + 0x64]
mov dword [edx + 0x64], eax
mov eax, dword [edi + 0x68]
mov dword [edx + 0x68], eax
mov eax, dword [edi + 0x6c]
mov dword [edx + 0x6c], eax
mov eax, dword [edi + 0x70]
mov dword [edx + 0x70], eax
mov eax, dword [edi + 0x74]
mov dword [edx + 0x74], eax
mov eax, dword [edi + 0x78]
mov dword [edx + 0x78], eax
mov eax, dword [edi + 0x7c]
mov dword [edx + 0x7c], eax
lea eax, [edx + 0x80]
mov dword [esp + 8], eax
mov dword [edi + 0x88], eax
mov eax, dword [edx + 4]
mov dword [ebp + 4], eax
mov eax, dword [edx + 0xc]
mov dword [esp + 4], eax
movzx edx, word [edx + 0xa]
shl edx, 0x10
add edx, 0xfff00000
shr edx, 0x10
mov word [ecx], dx
cmp esi, 1
jle 0x500763
mov edx, 1
mov ecx, dword [esp + 8]
lea ecx, [ecx + 0x10]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edi
mov dword [esp], ebp
mov ebp, edx
mov esi, edx
mov ebx, ecx
mov edx, eax
mov edi, dword [esp + 8]
jmp 0x500650
add ebx, 0x80
add edi, 0x80
mov eax, dword [esp + 0x30]
push eax
push edx
push edi
mov ecx, dword [esp + 0x34]
call fcn.0054d018
cmp eax, 1
je 0x50040d
mov edx, dword [edi + 0xc]
movzx eax, word [edi + 0xa]
shl eax, 0x10
add eax, 0xfff00000
shr eax, 0x10
mov ecx, dword [0x7e22e0]
mov word [ecx + ebp*2], ax
inc ebp
movsx eax, word [edi + 8]
movsx ecx, si
cmp eax, ecx
jne 0x50040d
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x88]
mov ecx, dword [ebx]
mov dword [eax], ecx
mov ecx, dword [ebx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [ebx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [ebx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebx + 0x10]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebx + 0x14]
mov dword [eax + 0x14], ecx
mov ecx, dword [ebx + 0x18]
mov dword [eax + 0x18], ecx
mov ecx, dword [ebx + 0x1c]
mov dword [eax + 0x1c], ecx
mov ecx, dword [ebx + 0x20]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebx + 0x24]
mov dword [eax + 0x24], ecx
mov ecx, dword [ebx + 0x28]
mov dword [eax + 0x28], ecx
mov ecx, dword [ebx + 0x2c]
mov dword [eax + 0x2c], ecx
mov ecx, dword [ebx + 0x30]
mov dword [eax + 0x30], ecx
mov ecx, dword [ebx + 0x34]
mov dword [eax + 0x34], ecx
mov ecx, dword [ebx + 0x38]
mov dword [eax + 0x38], ecx
mov ecx, dword [ebx + 0x3c]
mov dword [eax + 0x3c], ecx
mov ecx, dword [ebx + 0x40]
mov dword [eax + 0x40], ecx
mov ecx, dword [ebx + 0x44]
mov dword [eax + 0x44], ecx
mov ecx, dword [ebx + 0x48]
mov dword [eax + 0x48], ecx
mov ecx, dword [ebx + 0x4c]
mov dword [eax + 0x4c], ecx
mov ecx, dword [ebx + 0x50]
mov dword [eax + 0x50], ecx
mov ecx, dword [ebx + 0x54]
mov dword [eax + 0x54], ecx
mov ecx, dword [ebx + 0x58]
mov dword [eax + 0x58], ecx
mov ecx, dword [ebx + 0x5c]
mov dword [eax + 0x5c], ecx
mov ecx, dword [ebx + 0x60]
mov dword [eax + 0x60], ecx
mov ecx, dword [ebx + 0x64]
mov dword [eax + 0x64], ecx
mov ecx, dword [ebx + 0x68]
mov dword [eax + 0x68], ecx
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 0x6c], ecx
mov eax, dword [esp + 0x10]
add dword [eax + 0x88], 0x70
inc esi
movsx ecx, si
mov eax, dword [esp + 0xc]
cmp eax, ecx
jg 0x500644
mov ebp, dword [esp]
or byte [ebp + 0x10], 2
mov ecx, ebp
call fcn.00500778
add esp, 0x14
pop ebx
pop ebp
pop esi
pop edi
ret 0xc