Function at 0x439930
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0xc
push ebx
push esi
push edi
push ebp
mov esi, dword [esp + 0x20]
or esi, esi
je 0x439976
push 0xffffffffffffffff
call fcn.00441880
mov dword [esp + 0x14], eax
add esp, 4
or eax, eax
jne 0x439960
sub eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xc
ret
mov ecx, dword [esp + 0x10]
mov eax, dword [esi + 6]
mov dword [ecx + 6], eax
mov eax, dword [esi + 0xa]
mov dword [ecx + 0xa], eax
mov dword [esp + 0x18], ecx
jmp 0x439986
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
cmp dword [esp + 0x24], 0
je 0x439993
mov eax, dword [esp + 0x28]
jmp 0x439998
call fcn.0043f2b0
lea ecx, [eax + eax*4]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx]
mov ecx, dword [0x458710]
add ecx, esi
cmp word [ecx + 2], 0x1a
jne 0x4399c1
mov dword [esp + 0x14], 1
mov edx, dword [ecx + 8]
mov word [ecx + 2], dx
jmp 0x4399c9
mov dword [esp + 0x14], 0
mov ecx, dword [0x458710]
cmp word [esi + ecx + 2], 0
je 0x439c72
add eax, 0
lea ecx, [eax + eax*4]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx]
mov eax, dword [0x458710]
mov di, word [esi + eax + 2]
test di, 0x1000
je 0x439c72
mov cx, di
and cx, 0x1ff
mov bx, 0xa
mov ax, cx
cwd
idiv bx
cmp ax, 0x14
jne 0x439a30
or di, di
movsx eax, di
jl 0x439a27
add eax, 0x1388
jmp 0x439a33
sub eax, 0x1388
jmp 0x439a33
movsx eax, cx
push eax
call fcn.00441880
add esp, 4
mov ebx, eax
or ebx, ebx
je 0x439c85
mov eax, dword [0x458710]
mov ax, word [esi + eax + 2]
cmp ax, 0x1803
je 0x439a5c
cmp ax, 0x1804
jne 0x439a73
and ax, 0xf
neg ax
mov word [ebx + 4], ax
mov eax, dword [0x458710]
and word [esi + eax + 2], 0xf7ff
mov eax, dword [0x458710]
test byte [esi + eax + 3], 0x40
je 0x439a85
add word [ebx + 4], 0x3e8
mov ecx, dword [0x458710]
add ecx, esi
mov di, word [ecx + 2]
test di, 0x800
je 0x439ab1
mov ax, word [ebx + 4]
neg ax
mov word [ebx + 4], ax
mov eax, dword [0x458710]
mov eax, dword [esi + eax + 4]
jmp 0x439bfb
mov ax, di
and ax, 0x1ff
mov bp, 0xa
cwd
idiv bp
movsx eax, ax
cmp eax, 0x24
ja case.0x439ac9.11
jmp dword [eax*4 + 0x439cbc]
push ebx
call fcn.004418c0
add esp, 4
sub ebx, ebx
jmp 0x439c0a
mov di, word [ebx + 4]
cmp di, 0x3ec
je 0x439b30
mov bp, 0xa
mov ax, di
cwd
idiv bp
cmp ax, 0x1f
je 0x439b30
cmp di, 0xfffd
je 0x439c0a
cmp dword [esp + 0x14], 0
je 0x439b19
mov eax, dword [ecx + 4]
mov dword [ebx + 6], eax
jmp 0x439c0a
add ecx, 4
push ecx
call fcn.0043f580
add esp, 4
mov dword [ebx + 6], eax
jmp 0x439c0a
mov ax, word [ecx + 4]
mov word [ebx + 6], ax
mov eax, dword [0x458710]
movsx eax, word [esi + eax + 4]
push eax
call fcn.004433d0
add esp, 4
mov dword [ebx + 8], eax
mov edi, eax
or edi, edi
je 0x439ca3
movsx edx, word [ebx + 6]
mov eax, dword [0x458710]
lea esi, [esi + eax + 6]
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x439c0a
mov eax, dword [ecx + 8]
mov dword [ebx + 0xa], eax
mov eax, dword [ecx + 4]
mov dword [ebx + 6], eax
test di, 0x2000
mov eax, dword [0x458710]
mov ecx, dword [esi + eax + 0x10]
mov dword [ebx + 0x12], ecx
mov eax, dword [eax + esi + 0xc]
mov dword [ebx + 0xe], eax
je 0x439bb3
mov eax, dword [0x458710]
mov ecx, dword [esi + eax + 0x18]
mov dword [ebx + 0x1a], ecx
mov eax, dword [eax + esi + 0x14]
mov dword [ebx + 0x16], eax
jmp 0x439c0a
mov eax, dword [0x44d42c]
mov dword [ebx + 0x1a], eax
mov eax, dword [0x44d428]
mov dword [ebx + 0x16], eax
jmp 0x439c0a
mov eax, dword [ecx + 8]
mov dword [ebx + 0xa], eax
mov eax, dword [ecx + 4]
mov dword [ebx + 6], eax
jmp 0x439c0a
cmp word [ebx + 4], 0x42f
jne 0x439be3
mov eax, dword [ecx + 4]
mov dword [ebx + 6], eax
jmp 0x439c0a
mov ax, word [ecx + 4]
mov word [ebx + 6], ax
jmp 0x439c0a
mov eax, dword [ecx + 4]
mov dword [ebx + 6], eax
jmp 0x439c0a
mov eax, dword [ecx + 4]
mov dword [ebx + 6], eax
mov eax, dword [0x458710]
mov eax, dword [esi + eax + 8]
mov dword [ebx + 0xa], eax
or ebx, ebx
je 0x439c2a
cmp dword [esp + 0x10], 0
jne 0x439c19
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x18], 0
je 0x439c26
mov eax, dword [esp + 0x18]
mov dword [eax], ebx
mov dword [esp + 0x18], ebx
call fcn.0043f2b0
lea ecx, [eax + eax*4]
lea ecx, [ecx + ecx*4]
lea esi, [eax + ecx]
mov ecx, dword [0x458710]
add ecx, esi
cmp word [ecx + 2], 0x1a
jne 0x439c58
mov dword [esp + 0x14], 1
mov edx, dword [ecx + 8]
mov word [ecx + 2], dx
jmp 0x439c60
mov dword [esp + 0x14], 0
mov ecx, dword [0x458710]
cmp word [esi + ecx + 2], 0
jne 0x4399e0
dec word [0x45bd88]
mov eax, dword [esp + 0x10]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xc
ret
cmp dword [esp + 0x10], 0
je 0x439c99
mov ecx, dword [esp + 0x10]
push ecx
call fcn.004418c0
add esp, 4
sub eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xc
ret
push str.Internal_Error:_Out_of_memory_n
call fcn.0043caa0
add esp, 4
sub eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xc
ret