Function at 0x439330
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
push edi
xor edx, edx
push esi
push ebx
sub esp, 0x3c
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x54]
mov byte [esp + 0x1c], al
mov edi, dword [ebx + 0x30]
mov eax, dword [esp + 0x5c]
mov ecx, dword [ebx + 0x38]
mov byte [esp + 0x18], al
mov eax, edi
mov dword [esp + 0x10], ecx
add eax, ecx
setb dl
mov byte [esp + 0x2e], ah
mov byte [esp + 0x2f], al
mov ebp, edx
mov edx, dword [ebx + 0x34]
cmp ebp, 1
sbb edx, 0xffffffff
mov ebp, edx
mov byte [esp + 0x2a], dh
mov byte [esp + 0x2b], dl
shr ebp, 0x18
mov ecx, ebp
mov ebp, edx
mov edx, eax
shr edx, 0x18
shr ebp, 0x10
mov byte [esp + 0x28], cl
mov byte [esp + 0x2c], dl
mov edx, eax
mov ecx, ebp
shr edx, 0x10
cmp dword [esp + 0x10], 0x1b8
mov byte [esp + 0x29], cl
mov byte [esp + 0x2d], dl
je 0x439660
mov edi, dword [esp + 0x10]
cmp edi, 0x1b7
jg 0x439590
test edi, edi
je 0x439582
sub eax, 0x1b8
mov dword [ebx + 0x30], eax
mov eax, 0x1b8
sub eax, dword [esp + 0x10]
mov dword [esp + 4], 0x544360
mov dword [esp], ebx
mov dword [esp + 8], eax
sar eax, 0x1f
mov dword [esp + 0xc], eax
call fcn.00438f50
lea eax, [esp + 0x18]
mov dword [esp + 8], 8
mov dword [esp + 0xc], 0
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00438f50
mov eax, dword [ebx + 0x30]
sub eax, 8
mov edx, dword [ebx + 0x38]
sub eax, 0x40
lea edi, [ebx + 0x40]
mov dword [ebx + 0x30], eax
mov eax, edx
sar eax, 3
test eax, eax
je 0x439460
mov ecx, 0x40
sub ecx, eax
add eax, edi
cmp ecx, 8
mov ebp, ecx
jbe 0x4395f0
and edx, 0xfffffff8
lea ecx, [esp + 0x28]
lea edi, [edx + 0x40]
mov dword [esp + 0x10], edi
mov edi, eax
mov eax, 8
jmp 0x439471
lea ecx, [esp + 0x28]
mov dword [esp + 0x10], 0x40
mov eax, 8
mov ebp, dword [ecx]
mov dword [edi], ebp
mov ebp, dword [ecx + eax - 4]
mov dword [edi + eax - 4], ebp
lea ebp, [edi + 4]
and ebp, 0xfffffffc
sub edi, ebp
add eax, edi
sub ecx, edi
and eax, 0xfffffffc
cmp eax, 4
jb 0x4394a4
and eax, 0xfffffffc
xor edi, edi
mov edx, dword [ecx + edi]
mov dword [ebp + edi], edx
add edi, 4
cmp edi, eax
jb 0x439496
mov eax, dword [esp + 0x10]
mov dword [ebx + 0x38], eax
mov eax, dword [ebx]
shr eax, 0x18
mov byte [esi], al
mov eax, dword [ebx]
shr eax, 0x10
mov byte [esi + 1], al
mov eax, dword [ebx]
mov byte [esi + 2], ah
mov eax, dword [ebx]
mov byte [esi + 3], al
movzx eax, byte [ebx + 7]
mov byte [esi + 4], al
movzx eax, word [ebx + 6]
mov byte [esi + 5], al
mov eax, dword [ebx + 4]
mov byte [esi + 6], ah
mov eax, dword [ebx + 4]
mov byte [esi + 7], al
movzx eax, byte [ebx + 0xb]
mov byte [esi + 8], al
movzx eax, word [ebx + 0xa]
mov byte [esi + 9], al
mov eax, dword [ebx + 8]
mov byte [esi + 0xa], ah
mov eax, dword [ebx + 8]
mov byte [esi + 0xb], al
movzx eax, byte [ebx + 0xf]
mov byte [esi + 0xc], al
movzx eax, word [ebx + 0xe]
mov byte [esi + 0xd], al
mov eax, dword [ebx + 0xc]
mov byte [esi + 0xe], ah
mov eax, dword [ebx + 0xc]
mov byte [esi + 0xf], al
movzx eax, byte [ebx + 0x13]
mov byte [esi + 0x10], al
movzx eax, word [ebx + 0x12]
mov byte [esi + 0x11], al
mov eax, dword [ebx + 0x10]
mov byte [esi + 0x12], ah
mov eax, dword [ebx + 0x10]
mov byte [esi + 0x13], al
movzx eax, byte [ebx + 0x17]
mov byte [esi + 0x14], al
movzx eax, word [ebx + 0x16]
mov byte [esi + 0x15], al
mov eax, dword [ebx + 0x14]
mov byte [esi + 0x16], ah
mov eax, dword [ebx + 0x14]
mov byte [esi + 0x17], al
movzx eax, byte [ebx + 0x1b]
mov byte [esi + 0x18], al
movzx eax, word [ebx + 0x1a]
mov byte [esi + 0x19], al
mov eax, dword [ebx + 0x18]
mov byte [esi + 0x1a], ah
mov eax, dword [ebx + 0x18]
mov byte [esi + 0x1b], al
movzx eax, byte [ebx + 0x1f]
mov byte [esi + 0x1c], al
movzx eax, word [ebx + 0x1e]
mov byte [esi + 0x1d], al
mov eax, dword [ebx + 0x1c]
mov byte [esi + 0x1e], ah
mov eax, dword [ebx + 0x1c]
mov byte [esi + 0x1f], al
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [ebx + 0x3c], 1
jmp 0x4393cb
sub eax, 0x200
mov dword [ebx + 0x30], eax
mov eax, 0x200
sub eax, dword [esp + 0x10]
mov dword [esp + 4], 0x544360
mov dword [esp], ebx
mov dword [esp + 8], eax
sar eax, 0x1f
mov dword [esp + 0xc], eax
call fcn.00438f50
sub dword [ebx + 0x30], 0x1b8
mov dword [esp + 8], 0x1b8
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0x544361
mov dword [esp], ebx
call fcn.00438f50
mov dword [ebx + 0x3c], 1
jmp 0x4393f7
mov dword [esp + 8], ecx
lea ecx, [esp + 0x28]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
add dword [ebx + 0x30], 0x200
jne 0x439611
add dword [ebx + 0x34], 1
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.004382e0
lea eax, [ebp*8]
xor edx, edx
mov dword [esp + 0x10], eax
sar eax, 0x1f
mov dword [esp + 0x14], eax
mov eax, 0x40
sub eax, dword [esp + 0x10]
sbb edx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
mov ecx, edx
mov dword [esp + 0x14], edx
or ecx, eax
jne 0x43968e
mov dword [ebx + 0x38], 0
jmp 0x4394ab
lea eax, [esp + 0x1c]
sub edi, 8
mov dword [ebx + 0x30], edi
mov dword [esp + 8], 8
mov dword [esp + 4], eax
mov dword [esp + 0xc], 0
mov dword [esp], ebx
call fcn.00438f50
mov eax, dword [ebx + 0x30]
jmp 0x43941d
lea eax, [esp + 0x28]
mov edx, dword [esp + 0x14]
lea ecx, [eax + ebp]
mov eax, dword [esp + 0x10]
shrd eax, edx, 3
cmp eax, 4
jae 0x439471
test eax, eax
je 0x4394a4
movzx edx, byte [ecx]
test al, 2
mov byte [edi], dl
je 0x4394a4
movzx ecx, word [ecx + eax - 2]
mov word [edi + eax - 2], cx
jmp 0x4394a4