Function at 0x443912
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x30
push ebx
push ebp
push esi
push edi
mov ebx, ecx
mov esi, edx
push 0x40
mov dword [esp + 0x28], ebx
call fcn.0046dfb5
mov edi, eax
xor eax, eax
pop ecx
test edi, edi
je 0x443f08
mov dword [edi], eax
mov edx, 0xa0
mov dword [edi + 0x28], eax
mov ecx, ebx
mov dword [edi + 0x24], eax
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.00443824
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
je 0x443ed8
movzx eax, byte [ebx + 0x1d]
movzx ecx, byte [ebx + 0x1c]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebx + 0x1f]
shl ecx, 8
mov dword [esp + 0x28], eax
movzx eax, byte [ebx + 0x1e]
or ecx, eax
movzx eax, byte [ebx + 0x20]
mov dword [esp + 0x18], ecx
movzx ecx, byte [ebx + 0x21]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0xf]
mov dword [esp + 0x3c], ecx
cdq
mov ecx, eax
mov esi, edx
movzx eax, byte [ebx + 0xe]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [ebx + 0xd]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [ebx + 0xc]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
mov dword [edi + 0xc], esi
mov dword [edi + 8], ecx
movzx eax, byte [ebx + 0x1b]
cdq
mov ecx, eax
mov esi, edx
movzx eax, byte [ebx + 0x1a]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [ebx + 0x19]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [ebx + 0x18]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
mov dword [edi + 0x14], esi
mov dword [edi + 0x10], ecx
movzx ecx, byte [ebx + 0xb]
movzx eax, byte [ebx + 0xa]
shl ecx, 8
or ecx, eax
jne 0x443a2e
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
jmp 0x443a67
movzx eax, byte [ebx + 0x17]
cdq
mov ecx, eax
mov esi, edx
movzx eax, byte [ebx + 0x16]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [ebx + 0x15]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [ebx + 0x14]
shld esi, ecx, 8
cdq
shl ecx, 8
or ecx, eax
or esi, edx
mov dword [edi + 0x18], ecx
mov dword [edi + 0x1c], esi
movzx ecx, byte [ebx + 0x13]
movzx eax, byte [ebx + 0x12]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x11]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x10]
shl ecx, 8
or ecx, eax
mov dword [edi + 0x20], ecx
movzx eax, byte [ebx + 0x2d]
cdq
mov ebp, eax
mov esi, edx
movzx eax, byte [ebx + 0x2c]
shld esi, ebp, 8
cdq
or esi, edx
shl ebp, 8
or ebp, eax
movzx eax, byte [ebx + 0x2b]
shld esi, ebp, 8
cdq
or esi, edx
shl ebp, 8
or ebp, eax
movzx eax, byte [ebx + 0x2a]
shld esi, ebp, 8
cdq
or esi, edx
shl ebp, 8
mov edx, dword [esp + 0x24]
or ebp, eax
mov ecx, ebp
mov dword [esp + 0x20], esi
mov dword [esp + 0x30], ebp
add ecx, dword [edx + 0x70]
adc esi, dword [edx + 0x74]
neg ecx
mov dword [edi + 0x30], ecx
adc esi, 0
neg esi
mov dword [edi + 0x34], esi
movzx ecx, byte [ebx + 9]
movzx eax, byte [ebx + 8]
mov esi, dword [esp + 0x28]
shl ecx, 8
or ecx, eax
mov dword [edi + 0x38], ecx
lea eax, [esi + 1]
push eax
call fcn.0046dfb5
mov dword [edi], eax
pop ecx
test eax, eax
je 0x443ed8
push esi
lea ecx, [ebx + 0x2e]
push ecx
push eax
call fcn.0044a3b0
mov eax, dword [edi]
add esp, 0xc
mov edx, dword [esp + 0x18]
mov byte [esi + eax], 0
mov dword [edi + 0x3c], esi
test edx, edx
je 0x443e9c
add esi, 0x2e
lea eax, [edx + 2]
add esi, ebx
push eax
mov dword [esp + 0x18], esi
call fcn.0046dfb5
mov dword [edi + 0x28], eax
pop ecx
test eax, eax
je 0x443ed8
mov edx, dword [esp + 0x18]
mov ecx, edx
mov byte [eax], dl
mov eax, dword [edi + 0x28]
shr ecx, 8
push edx
push esi
mov byte [eax + 1], cl
mov eax, dword [edi + 0x28]
add eax, 2
push eax
call fcn.0044a3b0
add esp, 0xc
cmp dword [edi + 0x18], 0xffffffff
jne 0x443b80
cmp dword [edi + 0x1c], 0
je 0x443ba0
cmp dword [edi + 0x10], 0xffffffff
jne 0x443b8c
cmp dword [edi + 0x14], 0
je 0x443ba0
cmp ebp, 0xffffffff
jne 0x443e9c
cmp dword [esp + 0x20], 0
jne 0x443e9c
mov edx, dword [esp + 0x18]
xor ebp, ebp
cmp edx, 4
jbe 0x443e9c
mov eax, dword [esp + 0x14]
movzx esi, byte [esi + ebp + 3]
shl esi, 8
movzx eax, byte [eax + ebp + 2]
or esi, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], esi
movzx ecx, byte [eax + ebp + 1]
movzx eax, byte [eax + ebp]
shl ecx, 8
or ecx, eax
cmp ecx, 1
je 0x443bf2
add esi, 4
add ebp, esi
mov esi, dword [esp + 0x14]
lea eax, [ebp + 4]
cmp eax, edx
jl 0x443baf
jmp 0x443e9c
add ebp, 4
cmp dword [edi + 0x10], 0xffffffff
jne 0x443cda
cmp dword [edi + 0x14], 0
jne 0x443cda
cmp esi, 8
jb 0x443e9c
lea eax, [ebp + 8]
mov dword [esp + 0x2c], eax
cmp eax, edx
jg 0x443e9c
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + ebp + 7]
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x14]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + ebp + 6]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x14]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + ebp + 5]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x14]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + ebp + 4]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x14]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + ebp + 3]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x14]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + ebp + 2]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x14]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + ebp + 1]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x14]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + ebp]
mov ebp, dword [esp + 0x2c]
cdq
or esi, edx
or ecx, eax
mov edx, dword [esp + 0x18]
mov dword [edi + 0x14], esi
mov esi, dword [esp + 0x1c]
sub esi, 8
mov dword [edi + 0x10], ecx
mov dword [esp + 0x1c], esi
cmp dword [edi + 0x18], 0xffffffff
jne 0x443db7
cmp dword [edi + 0x1c], 0
jne 0x443db7
cmp esi, 8
jl 0x443e9c
lea eax, [ebp + 8]
mov dword [esp + 0x2c], eax
cmp eax, edx
jg 0x443e9c
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + ebp + 7]
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x14]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + ebp + 6]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x14]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + ebp + 5]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x14]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + ebp + 4]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x14]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + ebp + 3]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x14]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + ebp + 2]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x14]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + ebp + 1]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x14]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + ebp]
mov ebp, dword [esp + 0x2c]
cdq
or esi, edx
or ecx, eax
mov dword [edi + 0x1c], esi
mov esi, dword [esp + 0x1c]
mov dword [edi + 0x18], ecx
sub esi, 8
cmp dword [esp + 0x30], 0xffffffff
jne 0x443e9c
cmp dword [esp + 0x20], 0
jne 0x443e9c
cmp esi, 8
jl 0x443e9c
mov esi, dword [esp + 0x18]
lea eax, [ebp + 8]
cmp eax, esi
jg 0x443ea0
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + ebp + 7]
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x14]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + ebp + 6]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x14]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + ebp + 5]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x14]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + ebp + 4]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x14]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + ebp + 3]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x14]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + ebp + 2]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x14]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + ebp + 1]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x14]
shld esi, ecx, 8
shl ecx, 8
movzx eax, byte [eax + ebp]
cdq
or ecx, eax
or esi, edx
mov eax, dword [esp + 0x24]
add ecx, dword [eax + 0x70]
adc esi, dword [eax + 0x74]
neg ecx
mov dword [edi + 0x30], ecx
adc esi, 0
neg esi
mov dword [edi + 0x34], esi
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x3c]
test ebp, ebp
je 0x443efb
lea eax, [ebp + 1]
push eax
call fcn.0046dfb5
mov dword [edi + 0x24], eax
pop ecx
test eax, eax
je 0x443ed8
mov ecx, dword [esp + 0x28]
add ecx, 0x2e
add ecx, esi
push ebp
add ecx, ebx
push ecx
push eax
call fcn.0044a3b0
mov eax, dword [edi + 0x24]
add esp, 0xc
mov byte [eax + ebp], 0
jmp 0x443efb
push dword [edi]
call fcn.0046dfb5
pop ecx
push dword [edi + 0x28]
call fcn.0046dfb5
pop ecx
push dword [edi + 0x24]
call fcn.0046dfb5
pop ecx
push edi
call fcn.0046dfb5
pop ecx
xor edi, edi
test ebx, ebx
je 0x443f06
push ebx
call fcn.0046dfb5
pop ecx
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret