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

Disassembly:
sub esp, 0x64
xor edx, edx
cmp dword [esp + 0x6c], edx
push ebx
push esi
push edi
push ebp
je 0x4ab313
mov eax, dword [esp + 0x7c]
mov ax, word [eax + 0xc]
and ax, 0xfff
cmp ax, 0x329
jne 0x4ab313
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x34], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], edx
mov ecx, dword [ebp + 0x40]
mov dword [esp + 0x28], edx
test byte [ebp + 0xd], 0x40
lea eax, [ecx + 0x1cc]
mov ebx, dword [ecx + 0x1c8]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], ebx
je 0x4ab0dd
cmp dword [esp + 0x80], edx
je 0x4ab0dd
mov dword [esp + 0x14], 1
jmp 0x4ab0e5
mov dword [esp + 0x14], 0
cmp dword [esp + 0x14], 0
je 0x4ab0fa
mov eax, dword [esp + 0x1c]
push eax
push ebp
call fcn.004f2600
add esp, 8
mov eax, dword [esp + 0x7c]
mov esi, dword [eax + 4]
test esi, esi
je 0x4ab14c
xor edi, edi
mov ebx, 0x34f5
cmp dword [esi + 4], edi
je 0x4ab317
cmp word [esi + 0xe], bx
jne 0x4ab317
mov eax, dword [esi + 8]
inc dword [esp + 0x24]
add dword [esp + 0x28], eax
cmp dword [esp + 0x14], edi
je 0x4ab146
xor ecx, ecx
mov cx, word [esi + 0xc]
push ecx
push eax
mov eax, dword [esp + 0x24]
push eax
push ebp
call fcn.004f2620
add esp, 0x10
mov esi, dword [esi]
test esi, esi
jne 0x4ab10c
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
test ecx, ecx
je 0x4ab27b
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 4]
test eax, eax
je 0x4ab317
cmp word [ecx + 0xe], 0x218
jne 0x4ab317
xor edx, edx
xor ebx, ebx
mov dx, word [ecx + 0xc]
mov dword [esp + 0x20], eax
add eax, edx
mov edi, dword [esp + 0x20]
mov dword [esp + 0x18], eax
cmp edi, eax
jae 0x4ab22f
mov cx, word [edi]
test ch, 0x80
je 0x4ab1e2
mov ax, cx
xor ebx, ebx
and ax, 0x3fff
inc dword [esp + 0x24]
lea esi, [eax*2]
movzx eax, si
add dword [esp + 0x28], eax
test ch, 0x40
je 0x4ab1de
mov cx, word [edi + 2]
mov ax, cx
and ah, 0xfc
cmp ah, 0xd8
jne 0x4ab317
xor eax, eax
mov ax, cx
and eax, 0xff
jmp 0x4ab206
xor eax, eax
jmp 0x4ab206
test ebx, ebx
jne 0x4ab317
lea esi, [ecx*2]
mov ebx, 1
movzx eax, si
add dword [esp + 0x2c], eax
add dword [esp + 0x34], ebx
mov eax, 0x44
cmp dword [esp + 0x14], 0
je 0x4ab220
mov ecx, dword [esp + 0x1c]
push eax
movzx eax, si
push eax
push ecx
push ebp
call fcn.004f2620
add esp, 0x10
movzx eax, si
add edi, eax
cmp edi, dword [esp + 0x18]
jb 0x4ab197
cmp edi, dword [esp + 0x18]
jne 0x4ab317
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
test eax, eax
je 0x4ab269
test byte [eax + 1], 0x80
jne 0x4ab317
cmp dword [esp + 0x20], eax
ja 0x4ab317
cmp eax, dword [esp + 0x18]
jae 0x4ab317
mov eax, dword [eax + 4]
test eax, eax
jne 0x4ab244
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x4ab15e
cmp dword [esp + 0x80], 0
jle 0x4ab2fb
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x2c]
push ecx
lea ecx, [esp + 0x3c]
push edx
push eax
push 0xffff8282
push ecx
push ebp
call fcn.004bdd70
lea ecx, [esp + 0x50]
add esp, 0x1c
push ecx
push 0xffff8001
push 4
push ebp
call fcn.004bda00
add esp, 0x10
test byte [ebp + 0xd], 0x40
je 0x4ab2fb
cmp dword [esp + 0x80], 1
jle 0x4ab2fb
mov eax, dword [ebp + 0x44]
lea ecx, [esp + 0x34]
sub eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x1c]
cmp eax, 1
sbb eax, eax
neg eax
push eax
push ecx
mov eax, dword [esp + 0x88]
push edx
push eax
push ebp
call fcn.004f2610
add esp, 0x14
mov ecx, dword [esp + 0x30]
mov eax, dword [ebp + 0x40]
inc ecx
pop ebp
pop edi
mov dword [eax + 0x1c8], ecx
xor eax, eax
pop esi
pop ebx
add esp, 0x64
ret
mov ebp, dword [esp + 0x78]
push str.HEAP_check
push ebp
call fcn.004aa520
add esp, 8
mov eax, 0xfffffffe
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x64
ret