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

Disassembly:
sub esp, 0x48
mov edx, dword [esp + 0x4c]
push ebx
push ebp
push esi
mov ebx, dword [edx]
push edi
mov edi, dword [esp + 0x64]
mov dword [esp + 0x24], ebx
mov esi, dword [ebx + 8]
mov dword [esp + 0x38], esi
mov ebp, dword [edi + 0x4c]
mov dword [esp + 0x18], ebp
mov ecx, dword [esi + 0x74]
mov dword [esp + 0x34], ecx
cmp dword [esi + 0x78], ecx
jg 0x4eefca
push 0
push 0
push 0
push 0x11
push esi
call fcn.004ceed0
mov edx, dword [esp + 0x70]
add esp, 0x14
mov dword [esp + 0x34], eax
jmp 0x4ef000
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x11
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
lea ecx, [ecx]
push edi
push edx
push ebx
call fcn.0052c270
dec dword [ebx + 0x38]
add esp, 0xc
mov eax, dword [ebx + 0x38]
mov dword [esp + 0x30], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [ebx + 0x2c], eax
mov dword [edi + 0x34], eax
mov dword [esp + 0x20], eax
movzx eax, byte [edi + 0x38]
lea ecx, [eax + eax*8]
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*8 + 0x18]
mov ecx, 0xa
movzx eax, word [eax + 0x26]
cwde
cdq
idiv ecx
mov ecx, eax
mov eax, edx
cdq
movzx ecx, cx
mov edi, eax
test edx, edx
jne 0x4ef06a
cmp edi, 5
jae 0x4ef06a
test edx, edx
jne 0x4ef065
cmp edi, 1
jb 0x4ef070
add edi, 0xffffffff
jmp 0x4ef06d
add edi, 0xfffffffe
adc edx, 0xffffffff
cmp cx, 0x3c
jg 0x4ef0cb
cmp cx, 3
jl 0x4ef091
movsx ecx, cx
sub ecx, 3
add edi, 8
mov eax, edi
adc edx, 0
call fcn.00415420
jmp 0x4ef0a8
movsx eax, cx
mov ecx, 3
sub ecx, eax
add edi, 8
mov eax, edi
adc edx, 0
call fcn.004159c0
mov edi, eax
test edx, edx
ja 0x4ef0cb
jb 0x4ef0b8
cmp edi, 0x2710
jae 0x4ef0bf
mov edi, 0x2710
jmp 0x4ef0d0
test edx, edx
jne 0x4ef0cb
cmp edi, 0x989680
jbe 0x4ef0d8
mov edi, 0x989680
mov dword [esp + 0x2c], 0
mov ecx, dword [esi + 0x74]
mov edx, dword [esp + 0x20]
cmp dword [esi + 0x78], ecx
jg 0x4ef0f5
push 0
push edx
push edi
push 0x4c
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x4ef120
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x4c
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 0x74]
mov dword [esp + 0x20], ecx
cmp dword [esi + 0x78], ecx
jg 0x4ef149
push 0
push 0
push dword [esp + 0x18]
push 0x26
push esi
call fcn.004ceed0
mov edx, dword [esp + 0x24]
add esp, 0x14
mov dword [esp + 0x20], eax
jmp 0x4ef17c
mov edx, dword [esp + 0x10]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x26
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x5c]
mov edi, dword [eax + 0x70]
mov eax, dword [eax + 0x64]
lea eax, [eax + eax*2]
shl eax, 4
add eax, edi
cmp edi, eax
jae 0x4ef1fc
mov esi, dword [esp + 0x10]
mov ebp, eax
test byte [edi + 0xa], 2
mov eax, dword [edi]
jne 0x4ef1e9
mov dword [esp + 0x40], fcn.004b8870
mov ecx, 3
mov word [esp + 0x50], cx
mov dword [esp + 0x44], 0x5144b0
mov dword [esp + 0x54], esi
test eax, eax
je 0x4ef1d8
push eax
lea eax, [esp + 0x40]
push eax
call fcn.0053a2d0
add esp, 8
cmp word [esp + 0x50], 0
je 0x4ef1e9
push 0x10
push dword [esp + 0x34]
push dword [edi]
push ebx
call fcn.004f6f90
add esp, 0x10
add edi, 0x30
cmp edi, ebp
jb 0x4ef198
mov esi, dword [esp + 0x38]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
test dword [ebp + 0x2c], 0x100
je 0x4ef2f5
mov al, byte [ebx + 0x13]
test al, al
jne 0x4ef218
inc dword [ebx + 0x2c]
mov edi, dword [ebx + 0x2c]
jmp 0x4ef227
dec al
mov byte [ebx + 0x13], al
movzx eax, al
mov edi, dword [ebx + eax*4 + 0x98]
mov ecx, dword [esi + 0x74]
cmp dword [esi + 0x78], ecx
jg 0x4ef246
push 0
push edi
push dword [esp + 0x18]
push 0x86
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x4ef275
mov ebx, dword [esp + 0x24]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 0x86
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x64]
mov edx, dword [esi + 0x74]
mov eax, dword [eax + 0x34]
mov dword [esp + 0x28], eax
cmp dword [esi + 0x78], edx
jg 0x4ef29e
push edi
push 0
push eax
push 0xb2
push esi
call fcn.004ceed0
add esp, 0x14
mov edx, eax
jmp 0x4ef2d1
mov ebp, dword [esp + 0x28]
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], ebp
mov ebp, dword [esp + 0x18]
mov dword [eax + ecx*4], 0xb2
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x4ef424
mov eax, dword [esi + 0x70]
lea ecx, [edx + edx*4]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], 1
jmp 0x4ef424
movzx ecx, word [ebp + 0x18]
mov edx, dword [ebp + 0x20]
mov dword [esp + 0x28], edx
mov dword [esp + 0x1c], ecx
cmp ecx, 1
jne 0x4ef335
mov al, byte [ebx + 0x13]
test al, al
jne 0x4ef31e
inc dword [ebx + 0x2c]
xor edi, edi
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x14], eax
jmp 0x4ef369
dec al
xor edi, edi
mov byte [ebx + 0x13], al
movzx eax, al
mov eax, dword [ebx + eax*4 + 0x98]
mov dword [esp + 0x14], eax
jmp 0x4ef369
mov edi, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x20]
mov dword [esp + 0x14], edx
cmp ecx, edi
jg 0x4ef350
lea eax, [edx + ecx]
sub edi, ecx
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x1c], edi
jmp 0x4ef35f
mov eax, dword [ebx + 0x2c]
lea edx, [eax + 1]
add eax, ecx
mov dword [esp + 0x14], edx
mov dword [ebx + 0x2c], eax
xor edi, edi
test ecx, ecx
jle 0x4ef39e
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
lea eax, [edi + ebp]
push eax
mov eax, dword [edx + 4]
movsx eax, word [eax + edi*2]
push eax
push dword [esp + 0x18]
push dword [edx + 0xc]
push esi
call fcn.004f43c0
mov edx, dword [esp + 0x3c]
inc edi
add esp, 0x14
cmp edi, ebx
jl 0x4ef371
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x64]
mov edx, dword [esi + 0x74]
mov eax, dword [eax + 0x34]
mov dword [esp + 0x28], eax
cmp dword [esi + 0x78], edx
jg 0x4ef3cb
mov edi, dword [esp + 0x14]
push edi
push 0
push eax
push 0xb2
push esi
call fcn.004ceed0
add esp, 0x14
mov edx, eax
jmp 0x4ef3fe
mov edi, dword [esp + 0x28]
lea eax, [edx + 1]
mov dword [esi + 0x74], eax
lea ecx, [edx + edx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x14]
mov dword [eax + ecx*4], 0xb2
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
jne 0x4ef41b
mov eax, dword [esi + 0x70]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x1c]
mov byte [eax + ecx*4 + 1], 0xfd
mov dword [eax + ecx*4 + 0x10], edx
jmp 0x4ef41f
mov edx, dword [esp + 0x1c]
cmp edx, 1
jne 0x4ef43e
test edi, edi
je 0x4ef449
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x4ef449
movzx eax, al
mov dword [ebx + eax*4 + 0x98], edi
inc byte [ebx + 0x13]
jmp 0x4ef449
cmp edx, dword [ebx + 0x1c]
jle 0x4ef449
mov dword [ebx + 0x1c], edx
mov dword [ebx + 0x20], edi
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x30]
not edx
mov eax, dword [ecx + 0x3c]
add eax, dword [ecx + 0x38]
jns 0x4ef467
push edx
push esi
push ecx
call fcn.004e0f70
add esp, 0xc
jmp 0x4ef470
mov ecx, dword [ecx + 0x40]
mov eax, dword [esi + 0x74]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x20]
mov ecx, dword [esi + 0x74]
inc edx
mov edi, dword [eax + 4]
cmp dword [esi + 0x78], ecx
jg 0x4ef495
push 0
push edx
push edi
push 5
push esi
call fcn.004ceed0
add esp, 0x14
jmp 0x4ef4c4
mov ebp, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [esi + 0x74], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 0x70]
mov dword [eax + ecx*4], 5
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x20]
mov edx, dword [esi + 0x74]
test ecx, ecx
jns 0x4ef4d2
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x4ef4e1
mov eax, 0x6a4314
jmp 0x4ef4ea
mov eax, dword [esi + 0x70]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
and dword [ebp + 0x2c], 0xffbfffff
mov eax, dword [ebx]
test dword [eax + 0x50], 0x100000
jne 0x4ef598
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
inc eax
mov dword [esp + 0x60], eax
movzx edi, byte [edx + 0x30]
cmp eax, edi
jge 0x4ef58e
mov ecx, dword [edx + 4]
mov ebx, eax
imul eax, ebx, 0x58
add edx, 0x34c
mov dword [esp + 0x30], ecx
add edx, eax
lea esp, [esp]
lea eax, [edx - 0x4c]
mov dword [esp + 0x64], eax
movzx eax, byte [edx - 0x14]
lea eax, [eax + eax*8]
test byte [ecx + eax*8 + 0x2c], 8
jne 0x4ef570
mov ebp, dword [edx]
test ebp, ebp
je 0x4ef570
mov ecx, dword [ebp]
mov eax, dword [ebp + 4]
and ecx, dword [esp + 0x68]
and eax, dword [esp + 0x6c]
or ecx, eax
jne 0x4ef56c
mov eax, dword [ebp + 0x2c]
and eax, 0x400004
cmp eax, 0x400000
je 0x4ef578
mov ecx, dword [esp + 0x30]
inc ebx
add edx, 0x58
cmp ebx, edi
jl 0x4ef530
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x60], ebx
mov eax, dword [esp + 0x60]
cmp eax, edi
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x18], ebp
mov edi, dword [esp + 0x64]
jl 0x4ef000
mov ecx, dword [esp + 0x34]
mov edx, dword [esi + 0x74]
test ecx, ecx
jns 0x4ef5a6
lea ecx, [edx - 1]
mov eax, dword [esi]
cmp byte [eax + 0x57], 0
je 0x4ef5bc
pop edi
pop esi
pop ebp
mov dword [0x6a431c], edx
pop ebx
add esp, 0x48
ret
mov eax, dword [esi + 0x70]
lea ecx, [ecx + ecx*4]
pop edi
pop esi
pop ebp
mov dword [eax + ecx*4 + 8], edx
pop ebx
add esp, 0x48
ret