Function at 0x100427a0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x58
push ebx
push ebp
mov eax, ecx
xor ebx, ebx
push esi
push edi
mov dword [esp + 0x44], eax
xor ebp, ebp
mov edi, dword [eax + 4]
call fcn.10042600
mov esi, eax
mov eax, dword [esp + 0x6c]
mov dword [eax], ebx
test esi, esi
js 0x100430fb
movzx ecx, byte [esi + edi]
mov eax, 0x100
cwde
movsx ecx, cx
imul ecx, eax
movzx eax, byte [esi + edi + 1]
add cx, ax
movzx eax, cx
mov dword [esp + 0x30], eax
test ax, ax
jle 0x10042c2c
lea ebp, [edi + 0xa]
mov dword [esp + 0x14], ebx
movsx edi, ax
add ebp, esi
mov eax, dword [esp + 0x44]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x34], ebp
lea ecx, [esi + edi*2]
mov ebx, dword [eax + 4]
lea edx, [edi + edi]
movzx eax, byte [ecx + ebx + 0xa]
movzx ecx, byte [ecx + ebx + 0xb]
shl eax, 8
add eax, 0xc
add eax, ebx
add ecx, eax
mov eax, dword [0x100eea8c]
add ecx, edx
add esi, ecx
movzx ecx, byte [edx + ebp - 2]
movzx ebp, byte [edx + ebp - 1]
shl ecx, 8
inc ecx
add ebp, ecx
mov dword [esp + 0x3c], ebp
lea ecx, [edx + ebp]
test eax, eax
je 0x10042850
inc dword [eax + 0x36c]
push dword [0x100eea90]
lea eax, [ecx*8]
sub eax, ecx
add eax, eax
push eax
call fcn.10031b40
mov ebx, eax
add esp, 8
mov dword [esp + 0x18], ebx
test ebx, ebx
je 0x100430fb
xor dl, dl
mov dword [esp + 0x44], 0
test ebp, ebp
je 0x10042bea
lea ecx, [edi*8]
sub ecx, edi
lea edi, [ecx + 3]
lea edi, [ebx + edi*4]
mov bl, dl
nop dword [eax + eax]
test dl, dl
jne 0x100428bc
mov bl, byte [esi]
mov cl, bl
and cl, 8
je 0x100428b0
mov dl, byte [esi + 1]
xor eax, eax
test cl, cl
setne al
inc eax
add esi, eax
jmp 0x100428be
dec dl
mov byte [edi], bl
add edi, 0xe
sub ebp, 1
jne 0x100428a0
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x18]
movsx ecx, ax
lea eax, [ecx*8]
sub eax, ecx
xor edi, edi
lea ebp, [ebx + eax*4]
mov ebx, dword [esp + 0x3c]
mov dl, byte [ebp + 0xc]
and dl, 0x10
test byte [ebp + 0xc], 2
je 0x10042904
mov al, byte [esi]
inc esi
movzx ecx, al
mov eax, ecx
neg eax
test dl, dl
cmove ecx, eax
add edi, ecx
jmp 0x10042926
test dl, dl
jne 0x10042926
movzx ecx, byte [esi]
mov eax, 0x100
cwde
movsx ecx, cx
imul ecx, eax
movzx eax, byte [esi + 1]
add cx, ax
movsx eax, cx
add edi, eax
add esi, 2
mov word [ebp], di
add ebp, 0xe
sub ebx, 1
jne 0x100428e5
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x3c]
add ebp, 2
movsx ecx, ax
lea eax, [ecx*8]
sub eax, ecx
xor edi, edi
lea ebp, [ebp + eax*4]
mov dl, byte [ebp + 0xa]
and dl, 0x20
test byte [ebp + 0xa], 4
je 0x10042972
mov al, byte [esi]
inc esi
movzx ecx, al
mov eax, ecx
neg eax
test dl, dl
cmove ecx, eax
add edi, ecx
jmp 0x10042994
test dl, dl
jne 0x10042994
movzx ecx, byte [esi]
mov eax, 0x100
cwde
movsx ecx, cx
imul ecx, eax
movzx eax, byte [esi + 1]
add cx, ax
movsx eax, cx
add edi, eax
add esi, 2
mov word [ebp], di
add ebp, 0xe
sub ebx, 1
jne 0x10042953
mov eax, dword [esp + 0x30]
xor edx, edx
mov ebx, dword [esp + 0x18]
xor edi, edi
movsx ecx, ax
xor ebp, ebp
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x1c], edx
lea eax, [ecx*8]
mov dword [esp + 0x28], edx
sub eax, ecx
lea esi, [ebx + eax*4]
xor eax, eax
mov dword [esp + 0x20], eax
mov al, byte [esi + 0xc]
mov byte [esp + 0x12], al
movzx eax, word [esi]
movsx ecx, ax
movzx eax, word [esi + 2]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
cmp dword [esp + 0x44], eax
jne 0x10042ac1
test eax, eax
je 0x10042a28
push dword [esp + 0x1c]
mov ecx, ebx
push dword [esp + 0x2c]
push dword [esp + 0x34]
push dword [esp + 0x3c]
push edi
push ebp
push dword [esp + 0x58]
push dword [esp + 0x30]
call fcn.100426c0
mov ecx, dword [esp + 0x58]
add esp, 0x20
mov edx, eax
movzx ebp, byte [esp + 0x12]
not ebp
and ebp, 1
mov dword [esp + 0x40], ebp
je 0x10042a77
test byte [esi + 0x1a], 1
mov edi, dword [esp + 0x24]
movsx ebp, di
movsx edi, word [esi + 0x10]
mov dword [esp + 0x2c], ebp
lea ebp, [esi + 0xe]
mov dword [esp + 0x44], ebp
movsx ebp, word [ebp]
mov dword [esp + 0x30], ecx
jne 0x10042a6d
add ebp, ecx
mov ecx, dword [esp + 0x24]
movsx eax, cx
add edi, eax
sar ebp, 1
sar edi, 1
jmp 0x10042a80
inc dword [esp + 0x20]
mov esi, dword [esp + 0x44]
jmp 0x10042a80
mov ebp, ecx
mov ecx, dword [esp + 0x24]
movsx edi, cx
lea eax, [edx*8]
xor ecx, ecx
sub eax, edx
mov dword [esp + 0x14], ecx
inc edx
mov dword [ebx + eax*2 + 4], ecx
mov byte [ebx + eax*2 + 0xc], 1
mov word [ebx + eax*2], bp
mov word [ebx + eax*2 + 2], di
mov eax, dword [esp + 0x34]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax]
inc ecx
shl eax, 8
add eax, ecx
add dword [esp + 0x34], 2
mov dword [esp + 0x44], eax
jmp 0x10042bca
test byte [esp + 0x12], 1
jne 0x10042b3c
cmp dword [esp + 0x14], 0
je 0x10042b20
mov eax, dword [esp + 0x38]
lea ecx, [edx*8]
add eax, dword [esp + 0x28]
sub ecx, edx
sar eax, 1
inc edx
mov dword [esp + 0x14], ecx
mov byte [ebx + ecx*2 + 0xc], 3
mov ebx, dword [esp + 0x18]
mov word [ebx + ecx*2], ax
mov ecx, dword [esp + 0x24]
movsx eax, cx
mov ecx, dword [esp + 0x14]
add eax, dword [esp + 0x1c]
sar eax, 1
mov word [ebx + ecx*2 + 2], ax
mov eax, dword [esp + 0x28]
mov word [ebx + ecx*2 + 4], ax
mov eax, dword [esp + 0x1c]
mov word [ebx + ecx*2 + 6], ax
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], ecx
movsx ecx, ax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], 1
jmp 0x10042bce
movzx eax, word [esi]
lea ecx, [edx*8]
mov dword [esp + 0x48], eax
sub ecx, edx
mov eax, dword [esp + 0x24]
inc edx
movzx ebx, ax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x18]
test eax, eax
je 0x10042b84
mov eax, dword [esp + 0x1c]
movzx eax, ax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x28]
movzx ebx, ax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x18]
jmp 0x10042b94
mov dword [esp + 0x24], 0
mov dword [esp + 0x38], 0
test eax, eax
mov dword [esp + 0x14], 0
setne al
add al, 2
mov byte [ebx + ecx*2 + 0xc], al
mov eax, dword [esp + 0x48]
mov word [ebx + ecx*2], ax
mov eax, dword [esp + 0x4c]
mov word [ebx + ecx*2 + 2], ax
mov eax, dword [esp + 0x38]
mov word [ebx + ecx*2 + 4], ax
mov eax, dword [esp + 0x24]
mov word [ebx + ecx*2 + 6], ax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
add esi, 0xe
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x3c]
jl 0x100429d3
mov eax, dword [esp + 0x28]
jmp 0x10042bfc
xor edx, edx
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x2c], edx
xor edi, edi
mov dword [esp + 0x30], edx
xor ebp, ebp
push ecx
push eax
push dword [esp + 0x34]
mov ecx, ebx
push dword [esp + 0x3c]
push edi
push ebp
push dword [esp + 0x58]
push dword [esp + 0x30]
call fcn.100426c0
add esp, 0x20
mov ebp, eax
mov eax, dword [esp + 0x6c]
mov dword [eax], ebx
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret
cmp ax, 0xffff
jne 0x10042c1c
add edi, 0xa
xor ebp, ebp
add edi, esi
xor ebx, ebx
mov al, byte [edi + 2]
xorps xmm1, xmm1
movzx edx, byte [edi + 1]
movaps xmm0, xmmword [0x100ddc90]
movss xmm3, dword [0x100dd40c]
mov byte [esp + 0x12], al
mov al, byte [edi + 3]
add edi, 4
mov dword [esp + 0x20], 0
mov dword [esp + 0x34], edx
mov byte [esp + 0x13], al
movss dword [esp + 0x1c], xmm1
movss dword [esp + 0x18], xmm1
movups xmmword [esp + 0x50], xmm0
test dl, 2
je 0x10042cfe
mov al, byte [edi]
lea ecx, [edi + 1]
mov dword [esp + 0x4c], ecx
test dl, 1
je 0x10042cd9
mov dl, byte [edi + 2]
lea esi, [edi + 3]
movzx ecx, al
add edi, 4
movsx ecx, cx
mov eax, 0x100
cwde
imul ecx, eax
mov eax, dword [esp + 0x4c]
movzx eax, byte [eax]
add cx, ax
movsx eax, cx
movzx ecx, dl
mov edx, dword [esp + 0x34]
movsx ecx, cx
movd xmm0, eax
mov eax, 0x100
cwde
imul ecx, eax
movzx eax, byte [esi]
add cx, ax
movsx eax, cx
jmp 0x10042ce8
mov edi, ecx
movsx eax, al
mov cl, byte [edi]
inc edi
movd xmm0, eax
movsx eax, cl
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x1c], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x18], xmm0
test dl, 8
je 0x10042d3e
movzx ecx, byte [edi]
mov eax, 0x100
cwde
movsx ecx, cx
imul ecx, eax
movzx eax, byte [edi + 1]
movss dword [esp + 0x24], xmm1
add cx, ax
add edi, 2
movsx eax, cx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
movss dword [esp + 0x28], xmm0
movaps xmm2, xmm0
jmp 0x10042e6e
test dl, 0x40
je 0x10042d9f
movzx ecx, byte [edi]
mov edx, 0x100
movsx ecx, cx
movsx eax, dx
imul ecx, eax
movzx eax, byte [edi + 1]
movss dword [esp + 0x24], xmm1
add cx, ax
movsx eax, cx
movzx ecx, byte [edi + 2]
movsx ecx, cx
movd xmm2, eax
movsx eax, dx
imul ecx, eax
movzx eax, byte [edi + 3]
cvtdq2ps xmm2, xmm2
add cx, ax
add edi, 4
movsx eax, cx
mulss xmm2, xmm3
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
movss dword [esp + 0x28], xmm0
jmp 0x10042e6e
test dl, dl
jns 0x10042e4a
movzx ecx, byte [edi]
mov edx, 0x100
movsx ecx, cx
movsx eax, dx
imul ecx, eax
movzx eax, byte [edi + 1]
add cx, ax
movsx eax, cx
movzx ecx, byte [edi + 2]
movsx ecx, cx
movd xmm2, eax
movsx eax, dx
imul ecx, eax
movzx eax, byte [edi + 3]
cvtdq2ps xmm2, xmm2
add cx, ax
movsx eax, cx
movzx ecx, byte [edi + 4]
movsx ecx, cx
mulss xmm2, xmm3
movd xmm1, eax
movsx eax, dx
imul ecx, eax
movzx eax, byte [edi + 5]
cvtdq2ps xmm1, xmm1
add cx, ax
movsx eax, cx
movss dword [esp + 0x30], xmm2
movzx ecx, byte [edi + 6]
movsx ecx, cx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movsx eax, dx
imul ecx, eax
movzx eax, byte [edi + 7]
mulss xmm0, xmm3
mulss xmm1, xmm3
add cx, ax
add edi, 8
movsx eax, cx
movss dword [esp + 0x24], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
movss dword [esp + 0x28], xmm0
jmp 0x10042e74
movss xmm0, dword [esp + 0x5c]
movss xmm1, dword [esp + 0x54]
movss xmm2, dword [esp + 0x50]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [esp + 0x58]
movss dword [esp + 0x24], xmm0
movss dword [esp + 0x30], xmm2
movaps xmm0, xmm1
movss dword [esp + 0x2c], xmm1
mulss xmm0, xmm1
movaps xmm1, xmm2
mulss xmm1, xmm2
addss xmm0, xmm1
call fcn.100030b0
movss xmm1, dword [esp + 0x24]
movss dword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0x28]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.100030b0
movzx edx, byte [esp + 0x12]
lea eax, [esp + 0x20]
mov ecx, dword [esp + 0x44]
push eax
movzx eax, byte [esp + 0x17]
shl edx, 8
add edx, eax
movss dword [esp + 0x40], xmm0
call fcn.100446a0
mov esi, eax
add esp, 4
mov dword [esp + 0x38], esi
test esi, esi
jle 0x100430a3
movss xmm4, dword [esp + 0x28]
xor edx, edx
movss xmm5, dword [esp + 0x30]
movss xmm6, dword [esp + 0x24]
movss xmm7, dword [esp + 0x2c]
mov dword [esp + 0x4c], esi
mov ecx, dword [esp + 0x20]
xorps xmm3, xmm3
xorps xmm2, xmm2
movsx eax, word [ecx + edx + 2]
cvtsi2ss xmm3, eax
movsx eax, word [ecx + edx]
cvtsi2ss xmm2, eax
movaps xmm0, xmm3
mulss xmm3, xmm4
movaps xmm1, xmm2
mulss xmm0, xmm6
mulss xmm1, xmm5
mulss xmm2, xmm7
addss xmm1, xmm0
addss xmm2, xmm3
xorps xmm3, xmm3
addss xmm1, dword [esp + 0x1c]
addss xmm2, dword [esp + 0x18]
mulss xmm1, dword [esp + 0x40]
mulss xmm2, dword [esp + 0x3c]
cvttss2si eax, xmm1
mov word [ecx + edx], ax
cvttss2si eax, xmm2
xorps xmm2, xmm2
mov word [ecx + edx + 2], ax
movsx eax, word [ecx + edx + 6]
cvtsi2ss xmm3, eax
movsx eax, word [ecx + edx + 4]
cvtsi2ss xmm2, eax
movaps xmm1, xmm3
mulss xmm3, xmm4
movaps xmm0, xmm2
mulss xmm1, xmm6
mulss xmm0, xmm5
mulss xmm2, xmm7
addss xmm1, xmm0
addss xmm2, xmm3
addss xmm1, dword [esp + 0x1c]
addss xmm2, dword [esp + 0x18]
mulss xmm1, dword [esp + 0x40]
mulss xmm2, dword [esp + 0x3c]
cvttss2si eax, xmm1
mov word [ecx + edx + 4], ax
cvttss2si eax, xmm2
mov word [ecx + edx + 6], ax
add edx, 0xe
sub esi, 1
jne 0x10042f06
mov eax, dword [0x100eea8c]
mov esi, dword [esp + 0x38]
test eax, eax
je 0x10042fe7
inc dword [eax + 0x36c]
push dword [0x100eea90]
lea ecx, [esi + ebp]
lea eax, [ecx*8]
mov dword [esp + 0x50], ecx
sub eax, ecx
add eax, eax
push eax
call fcn.10031b40
mov esi, eax
add esp, 8
test esi, esi
je 0x100430b3
test ebp, ebp
jle 0x1004302c
lea ecx, [ebp*8]
sub ecx, ebp
add ecx, ecx
push ecx
push ebx
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x38]
lea eax, [ecx*8]
sub eax, ecx
add eax, eax
push eax
push dword [esp + 0x24]
lea eax, [ebp*8]
sub eax, ebp
lea eax, [esi + eax*2]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
test ebx, ebx
je 0x10043077
mov eax, dword [0x100eea8c]
test eax, eax
je 0x10043068
dec dword [eax + 0x36c]
push dword [0x100eea90]
push ebx
call fcn.10031b50
add esp, 8
mov ecx, dword [esp + 0x20]
mov ebx, esi
test ecx, ecx
je 0x10043090
mov eax, dword [0x100eea8c]
test eax, eax
je 0x10043090
dec dword [eax + 0x36c]
push dword [0x100eea90]
push ecx
call fcn.10031b50
mov ebp, dword [esp + 0x54]
add esp, 8
test byte [esp + 0x34], 0x20
je 0x10042c1c
jmp 0x10042c3b
test ebx, ebx
je 0x100430d5
mov eax, dword [0x100eea8c]
test eax, eax
je 0x100430c6
dec dword [eax + 0x36c]
push dword [0x100eea90]
push ebx
call fcn.10031b50
add esp, 8
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x100430fb
mov eax, dword [0x100eea8c]
test eax, eax
je 0x100430ec
dec dword [eax + 0x36c]
push dword [0x100eea90]
push ecx
call fcn.10031b50
add esp, 8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x58
ret