Function at 0x421183
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.00434fbc
mov edi, eax
xor eax, eax
pop ecx
test edi, edi
je 0x421779
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.00421095
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
je 0x421749
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 0x42129f
xorps xmm0, xmm0
movlpd qword [esp + 0x30], xmm0
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
jmp 0x4212d8
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.00434fbc
mov dword [edi], eax
pop ecx
test eax, eax
je 0x421749
push esi
lea ecx, [ebx + 0x2e]
push ecx
push eax
call fcn.004277d0
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 0x42170d
add esi, 0x2e
lea eax, [edx + 2]
add esi, ebx
push eax
mov dword [esp + 0x18], esi
call fcn.00434fbc
mov dword [edi + 0x28], eax
pop ecx
test eax, eax
je 0x421749
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.004277d0
add esp, 0xc
cmp dword [edi + 0x18], 0xffffffff
jne 0x4213f1
cmp dword [edi + 0x1c], 0
je 0x421411
cmp dword [edi + 0x10], 0xffffffff
jne 0x4213fd
cmp dword [edi + 0x14], 0
je 0x421411
cmp ebp, 0xffffffff
jne 0x42170d
cmp dword [esp + 0x20], 0
jne 0x42170d
mov edx, dword [esp + 0x18]
xor ebp, ebp
cmp edx, 4
jbe 0x42170d
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 0x421463
add esi, 4
add ebp, esi
mov esi, dword [esp + 0x14]
lea eax, [ebp + 4]
cmp eax, edx
jl 0x421420
jmp 0x42170d
add ebp, 4
cmp dword [edi + 0x10], 0xffffffff
jne 0x42154b
cmp dword [edi + 0x14], 0
jne 0x42154b
cmp esi, 8
jb 0x42170d
lea eax, [ebp + 8]
mov dword [esp + 0x2c], eax
cmp eax, edx
jg 0x42170d
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 0x421628
cmp dword [edi + 0x1c], 0
jne 0x421628
cmp esi, 8
jl 0x42170d
lea eax, [ebp + 8]
mov dword [esp + 0x2c], eax
cmp eax, edx
jg 0x42170d
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 0x42170d
cmp dword [esp + 0x20], 0
jne 0x42170d
cmp esi, 8
jl 0x42170d
mov esi, dword [esp + 0x18]
lea eax, [ebp + 8]
cmp eax, esi
jg 0x421711
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 0x42176c
lea eax, [ebp + 1]
push eax
call fcn.00434fbc
mov dword [edi + 0x24], eax
pop ecx
test eax, eax
je 0x421749
mov ecx, dword [esp + 0x28]
add ecx, 0x2e
add ecx, esi
push ebp
add ecx, ebx
push ecx
push eax
call fcn.004277d0
mov eax, dword [edi + 0x24]
add esp, 0xc
mov byte [eax + ebp], 0
jmp 0x42176c
push dword [edi]
call fcn.0042c82b
pop ecx
push dword [edi + 0x28]
call fcn.0042c82b
pop ecx
push dword [edi + 0x24]
call fcn.0042c82b
pop ecx
push edi
call fcn.0042c82b
pop ecx
xor edi, edi
test ebx, ebx
je 0x421777
push ebx
call fcn.0042c82b
pop ecx
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret