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

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, ecx
mov ecx, 1
mov dword [ebp - 4], ecx
push edi
test esi, esi
je 0x4abcaf
mov edx, dword [esi + 0x20]
mov dword [esi + 0x18], 0
test edx, edx
jne 0x4ab9a5
mov dword [esi + 0x28], edx
mov edx, 0x4b1b00
mov dword [esi + 0x20], 0x4b1b00
cmp dword [esi + 0x24], 0
jne 0x4ab9b2
mov dword [esi + 0x24], 0x4b1b20
mov edi, dword [ebp + 0xc]
test edi, edi
jns 0x4ab9bf
xor ecx, ecx
neg edi
jmp 0x4ab9cc
cmp edi, 0xf
jle 0x4ab9cf
mov ecx, 2
sub edi, 0x10
mov dword [ebp - 4], ecx
lea eax, [edi - 8]
cmp eax, 7
ja 0x4abcaf
cmp edi, 8
jne 0x4ab9ec
cmp ecx, 1
jne 0x4abcaf
lea edi, [ecx + 8]
push ebx
push 0x16c4
push 1
push dword [esi + 0x28]
call edx
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x4abca3
mov eax, dword [ebp - 4]
mov ecx, edi
mov dword [esi + 0x1c], ebx
mov edx, 1
shl edx, cl
mov dword [ebx + 0x18], eax
push 2
mov dword [ebx], esi
lea eax, [edx - 1]
mov dword [ebx + 4], 0x2a
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x30], edi
mov dword [ebx + 0x2c], edx
mov dword [ebx + 0x34], eax
mov dword [ebx + 0x50], 0xf
mov dword [ebx + 0x4c], 0x8000
mov dword [ebx + 0x54], 0x7fff
mov dword [ebx + 0x58], 5
mov eax, dword [esi + 0x20]
push edx
push dword [esi + 0x28]
call eax
push 2
push dword [ebx + 0x2c]
mov dword [ebx + 0x38], eax
push dword [esi + 0x28]
mov eax, dword [esi + 0x20]
call eax
push 2
push dword [ebx + 0x4c]
mov dword [ebx + 0x40], eax
push dword [esi + 0x28]
mov eax, dword [esi + 0x20]
call eax
push 4
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x16c0], 0
mov dword [ebx + 0x169c], 0x4000
mov eax, dword [esi + 0x20]
push 0x4000
push dword [esi + 0x28]
call eax
mov edi, dword [ebx + 0x169c]
add esp, 0x30
cmp dword [ebx + 0x38], 0
mov edx, eax
mov dword [ebx + 8], edx
lea ecx, [edi*4]
mov dword [ebx + 0xc], ecx
je 0x4abc8d
cmp dword [ebx + 0x40], 0
je 0x4abc8d
cmp dword [ebx + 0x44], 0
je 0x4abc8d
test edx, edx
je 0x4abc8d
mov eax, edi
mov dword [ebx + 0x84], 6
shr eax, 1
mov ecx, esi
mov dword [ebx + 0x88], 0
mov byte [ebx + 0x24], 8
lea eax, [edx + eax*2]
mov dword [ebx + 0x16a4], eax
lea eax, [edx + edi*2]
add eax, edi
mov dword [ebx + 0x1698], eax
call fcn.004abcc0
test eax, eax
je 0x4abb28
mov edi, 0xfffffffe
pop ebx
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [esi + 0x1c]
mov dword [esi + 0x14], 0
mov dword [esi + 8], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x2c], 2
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 8]
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], eax
test ecx, ecx
jns 0x4abb60
neg ecx
mov dword [edi + 0x18], ecx
cmp ecx, 2
jne 0x4abb70
mov dword [edi + 4], 0x39
xor eax, eax
jmp 0x4abb90
test ecx, ecx
mov edx, 0x2a
mov eax, 0x71
cmovne eax, edx
xor edx, edx
push 0
xor ecx, ecx
mov dword [edi + 4], eax
call fcn.004b1b30
add esp, 4
mov dword [esi + 0x30], eax
mov ecx, edi
lea eax, [edi + 0x94]
mov dword [edi + 0x28], 0
mov dword [edi + 0xb18], eax
lea eax, [edi + 0x988]
mov dword [edi + 0xb24], eax
lea eax, [edi + 0xa7c]
mov dword [edi + 0xb30], eax
xor eax, eax
mov dword [edi + 0xb20], 0x525494
mov dword [edi + 0xb2c], 0x52651c
mov dword [edi + 0xb38], 0x525724
mov word [edi + 0x16b8], ax
mov dword [edi + 0x16bc], eax
call fcn.004b0020
mov esi, dword [esi + 0x1c]
xor edx, edx
xor edi, edi
mov eax, dword [esi + 0x2c]
mov ecx, dword [esi + 0x4c]
add eax, eax
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x44]
mov word [eax + ecx*2 - 2], dx
mov eax, dword [esi + 0x4c]
lea eax, [eax*2 - 2]
push eax
push edx
push dword [esi + 0x44]
call fcn.004b6620
mov eax, dword [esi + 0x84]
add esp, 0xc
lea ecx, [eax + eax*2]
movzx eax, word [ecx*4 + 0x52573a]
mov dword [esi + 0x80], eax
movzx eax, word [ecx*4 + 0x525738]
mov dword [esi + 0x8c], eax
movzx eax, word [ecx*4 + 0x52573c]
mov dword [esi + 0x90], eax
movzx eax, word [ecx*4 + 0x52573e]
mov dword [esi + 0x7c], eax
mov eax, edi
pop ebx
mov dword [esi + 0x6c], edi
mov dword [esi + 0x5c], edi
mov dword [esi + 0x74], edi
mov dword [esi + 0x16b4], edi
mov dword [esi + 0x68], edi
mov dword [esi + 0x48], edi
pop edi
mov dword [esi + 0x78], 2
mov dword [esi + 0x60], 2
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [str.insufficient_memory]
mov ecx, esi
mov dword [ebx + 4], 0x29a
mov dword [esi + 0x18], eax
call fcn.004acb80
pop ebx
pop edi
mov eax, 0xfffffffc
pop esi
mov esp, ebp
pop ebp
ret
pop edi
mov eax, 0xfffffffe
pop esi
mov esp, ebp
pop ebp
ret