Function at 0x4235e0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4444cb
mov eax, dword fs:[0]
push eax
sub esp, 0x184
mov eax, dword [0x73dd74]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov ecx, 0x7430ba
mov dword [ebp - 0x114], eax
call fcn.00442547
mov edx, dword [ebp - 0x114]
cmp dword [edx + 0x58], 0
jge 0x423655
test byte [edx + 4], 2
mov ecx, edx
jne 0x42363e
push 0x1b
push 0xd9
jmp 0x423642
push 2
push 2
push 0x80000000
call fcn.00420a70
mov edx, dword [ebp - 0x114]
mov dword [edx + 0x58], eax
mov eax, dword [edx + 0x14]
mov dword [edx + 8], 0
mov dword [edx + 0x20], 0
mov dword [edx + 0x1c], 0
mov dword [edx + 0x24], 0
mov dword [edx + 0x28], 0
mov dword [edx + 0x2c], 0
mov dword [edx + 0x30], 0
test eax, eax
je 0x42369c
push eax
call fcn.00414f60
mov edx, dword [ebp - 0x114]
add esp, 4
mov eax, dword [edx + 0x18]
test eax, eax
je 0x4236b2
push eax
call fcn.00414f60
mov edx, dword [ebp - 0x114]
add esp, 4
xor ebx, ebx
mov dword [edx + 0x14], 0
xor esi, esi
mov dword [edx + 0x18], 0
xor edi, edi
mov dword [ebp - 0x130], esi
cmp dword [edx + 0x4c], ebx
jle 0x42373e
xor ecx, ecx
mov dword [ebp - 0x128], ecx
nop dword [eax]
mov eax, dword [edx + 0x54]
mov edx, dword [eax + ecx + 0x30]
test edx, edx
jne 0x4236f8
mov dword [eax + ecx + 0x30], 0x71bd68
mov edx, 0x71bd68
cmp word [edx], 0
je 0x423729
nop
movzx eax, word [edx + 2]
test ax, ax
je 0x42371d
mov ecx, eax
inc ebx
movzx eax, word [edx]
inc esi
add edx, 4
sub ecx, eax
add ebx, ecx
cmp word [edx], 0
jne 0x423700
mov ecx, dword [ebp - 0x128]
mov dword [ebp - 0x130], esi
mov edx, dword [ebp - 0x114]
inc edi
add ecx, 0x74
mov dword [ebp - 0x128], ecx
cmp edi, dword [edx + 0x4c]
jl 0x4236e0
mov edi, dword [edx + 0xc]
test edi, edi
jg 0x423776
cmp ebx, 0xfa0
jle 0x423754
mov edi, 0x1000
jmp 0x423776
cmp ebx, 0x7d0
jle 0x423763
mov edi, 0x800
jmp 0x423776
cmp ebx, 0x3e8
mov edi, 0x200
mov eax, 0x400
cmovg edi, eax
mov eax, dword [edx + 0x10]
push 0x30
mov dword [edx + 0x1c], edi
mov dword [edx + 0x20], 0
mov dword [ebp - 0x128], eax
call fcn.00414f30
mov dword [ebp - 0x11c], eax
mov eax, edi
sub eax, dword [ebp - 0x128]
mov dword [ebp - 0x124], eax
lea ecx, [eax*8]
push ecx
call fcn.00414f30
mov ecx, eax
add esp, 8
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0x154], ecx
test eax, eax
je 0x4244fc
test ecx, ecx
je 0x4244f9
mov edx, dword [ebp - 0x128]
mov dword [ebp - 0x160], ecx
mov ecx, dword [ebp - 0x124]
push ecx
push dword [ebp - 0x154]
mov dword [ebp - 0x180], eax
mov eax, 0x8000
sub eax, edx
mov dword [ebp - 0x184], 0
push eax
push ecx
push dword [ebp - 0x11c]
mov dword [ebp - 0x17c], edi
mov dword [ebp - 0x178], 0x8000
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x170], edx
mov dword [ebp - 0x174], edi
call fcn.0042be20
xor eax, eax
mov dword [ebp - 0x120], 1
add esp, 0x14
mov dword [ebp - 0x15c], 1
mov dword [ebp - 0x18c], 0
mov dword [ebp - 0x190], 0
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x188], eax
mov edi, dword [ebp - 0x114]
mov dword [ebp - 4], eax
mov edi, dword [edi + 0x40]
mov edx, edi
mov dword [ebp - 0x134], edi
test edi, edi
jle 0x4238b3
mov edx, 8
mov ecx, edi
cmp edi, edx
cmovl ecx, edx
mov edx, edi
test ecx, ecx
jle 0x4238b3
shl ecx, 4
push ecx
call fcn.00414f30
mov ecx, dword [ebp - 0x114]
add esp, 4
mov dword [ebp - 0x118], eax
mov edx, dword [ecx + 0x40]
shl edx, 4
push edx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [ebp - 0x114]
add esp, 0xc
cmp dword [eax + 0x40], 0
jle 0x423910
mov edx, dword [ebp - 0x118]
xor ecx, ecx
add edx, 6
mov edi, eax
xor esi, esi
nop dword [eax]
mov eax, dword [edi + 0x48]
lea ecx, [ecx + 0x1c]
inc esi
lea edx, [edx + 0x10]
movzx eax, word [eax + ecx - 0x18]
mov word [edx - 0x12], ax
mov eax, dword [edi + 0x48]
movzx eax, word [eax + ecx - 0x16]
mov word [edx - 0x10], ax
cmp esi, dword [edi + 0x40]
jl 0x4238e0
mov esi, dword [ebp - 0x130]
mov edi, dword [ebp - 0x134]
push edi
push dword [ebp - 0x118]
push dword [ebp - 0x11c]
call fcn.0042bfc0
add esp, 0xc
test edi, edi
jle 0x42398e
mov edx, dword [ebp - 0x118]
xor edi, edi
mov eax, dword [ebp - 0x134]
add edx, 8
mov esi, dword [ebp - 0x114]
cmp dword [edx + 4], 0
je 0x423977
mov ecx, dword [esi + 0x48]
movzx eax, word [edx]
mov word [edi + ecx + 8], ax
mov ecx, dword [esi + 0x48]
movzx eax, word [edx + 2]
mov word [edi + ecx + 0xa], ax
movzx eax, word [edx + 2]
movzx ecx, word [edx - 2]
add ecx, eax
mov eax, dword [ebp - 0x134]
cmp dword [esi + 0x20], ecx
cmovge ecx, dword [esi + 0x20]
mov dword [esi + 0x20], ecx
add edi, 0x1c
add edx, 0x10
sub eax, 1
mov dword [ebp - 0x134], eax
jne 0x423940
mov esi, dword [ebp - 0x130]
mov eax, dword [ebp - 0x118]
mov dword [ebp - 4], 1
test eax, eax
je 0x4239a8
push eax
call fcn.00414f60
add esp, 4
mov eax, dword [ebp - 0x114]
mov dword [ebp - 4], 0xffffffff
imul eax, dword [eax + 0x4c], 0x8c
push eax
call fcn.00414f30
mov ecx, dword [ebp - 0x114]
xor edi, edi
add esp, 4
mov edx, eax
mov dword [ebp - 0x134], edx
cmp dword [ecx + 0x4c], edi
jle 0x423a3e
xor eax, eax
mov dword [ebp - 0x150], edx
mov dword [ebp - 0x128], eax
mov esi, dword [ecx + 0x54]
add esi, eax
push dword [esi + 0xc]
push dword [esi]
call fcn.0042c4b0
push eax
push dword [esi]
mov esi, dword [ebp - 0x150]
push esi
call fcn.00426b50
add esp, 0x14
test eax, eax
je 0x423bfc
mov ecx, dword [ebp - 0x114]
inc edi
mov eax, dword [ebp - 0x128]
add esi, 0x8c
add eax, 0x74
mov dword [ebp - 0x150], esi
mov dword [ebp - 0x128], eax
cmp edi, dword [ecx + 0x4c]
jl 0x4239e8
mov esi, dword [ebp - 0x130]
lea edi, [ebx*8]
mov dword [ebp - 0x118], 0
sub edi, ebx
mov dword [ebp - 0x148], 0
shl edi, 2
push edi
mov dword [ebp - 0x158], 0
call fcn.00414f30
shl ebx, 4
push ebx
mov dword [ebp - 0x150], eax
call fcn.00414f30
lea esi, [esi + esi*2]
mov dword [ebp - 0x144], eax
shl esi, 3
push esi
call fcn.00414f30
push edi
push 0
push dword [ebp - 0x150]
mov dword [ebp - 0x128], eax
call sub.VCRUNTIME140.dll_memset
push ebx
push 0
push dword [ebp - 0x144]
call sub.VCRUNTIME140.dll_memset
push esi
push 0
push dword [ebp - 0x128]
call sub.VCRUNTIME140.dll_memset
mov esi, dword [ebp - 0x114]
add esp, 0x30
mov dword [ebp - 0x140], 0
cmp dword [esi + 0x4c], 0
jle 0x423deb
mov edi, dword [ebp - 0x134]
xor eax, eax
mov dword [ebp - 0x124], eax
nop word [eax + eax]
mov ecx, dword [esi + 0x54]
xor ebx, ebx
add ecx, eax
mov dword [ebp - 0x13c], ebx
xor esi, esi
mov dword [ebp - 0x14c], ecx
mov dword [ebp - 0x130], esi
mov edx, dword [ecx + 0x30]
movzx eax, word [edx]
test ax, ax
je 0x423b45
movzx ecx, word [edx + 2]
test cx, cx
je 0x423b33
add edx, 4
movzx eax, ax
sub ecx, eax
inc ebx
add ebx, ecx
inc esi
movzx eax, word [edx]
test ax, ax
jne 0x423b16
mov ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x13c], ebx
mov dword [ebp - 0x130], esi
mov edx, dword [ebp - 0x158]
mov ebx, dword [ebp - 0x128]
mov dword [edi + 0x88], esi
lea eax, [edx + edx*2]
add edx, esi
lea eax, [ebx + eax*8]
mov dword [ebp - 0x158], edx
xor ebx, ebx
mov dword [ebp - 0x138], eax
mov dword [edi + 0x84], eax
test esi, esi
jle 0x423c1b
xor eax, eax
mov dword [ebp - 0x138], eax
mov edx, dword [ecx + 0x30]
mov esi, dword [edi + 0x84]
add esi, eax
mov eax, dword [ecx + 0x10]
mov dword [esi], eax
movzx eax, word [edx + ebx*4]
mov dword [esi + 4], eax
movzx eax, word [edx + ebx*4]
movzx ecx, word [edx + ebx*4 + 2]
inc ebx
mov edx, dword [ebp - 0x118]
sub ecx, eax
inc ecx
add dword [ebp - 0x118], ecx
mov dword [esi + 0xc], ecx
mov ecx, dword [ebp - 0x14c]
lea eax, [edx*8]
sub eax, edx
mov edx, dword [ebp - 0x150]
lea eax, [edx + eax*4]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x138]
add eax, 0x18
mov dword [ebp - 0x138], eax
cmp ebx, dword [ebp - 0x130]
jl 0x423b83
mov esi, dword [edi + 0x88]
mov ebx, dword [edi + 0x84]
mov dword [ebp - 0x130], esi
jmp 0x423c21
mov eax, dword [ebp - 0x114]
push dword [ebp - 0x134]
mov dword [eax + 0x20], 0
mov dword [eax + 0x1c], 0
jmp 0x424501
mov ebx, dword [ebp - 0x138]
mov ecx, dword [ebp - 0x148]
mov eax, ecx
mov edx, dword [ebp - 0x144]
mov esi, dword [ebp - 0x120]
shl eax, 4
add edx, eax
mov eax, dword [ebp - 0x13c]
add ecx, eax
mov dword [edi + 0x80], eax
mov eax, dword [ebp - 0x14c]
mov dword [edi + 0x7c], edx
mov dword [ebp - 0x148], ecx
push edx
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x14]
cmp eax, 8
cmovbe esi, eax
cmp ecx, 8
mov eax, esi
mov dword [ebp - 0x120], esi
mov esi, dword [ebp - 0x130]
mov dword [ebp - 0x16c], eax
mov eax, dword [ebp - 0x15c]
cmovbe eax, ecx
push esi
push ebx
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x168], eax
lea eax, [ebp - 0x184]
push edi
push eax
call fcn.0042ca50
xor edx, edx
xor esi, esi
add esp, 0x14
mov dword [ebp - 0x13c], edx
mov ebx, eax
mov dword [ebp - 0x138], esi
mov dword [ebp - 0x130], ebx
cmp dword [edi + 0x88], edx
jle 0x423d50
xor ecx, ecx
mov dword [ebp - 0x14c], ecx
nop
mov eax, dword [edi + 0x84]
xor ebx, ebx
cmp dword [ecx + eax + 0xc], ebx
jle 0x423d32
mov esi, edx
shl esi, 4
mov eax, dword [eax + ecx + 4]
add eax, ebx
push eax
push edi
call fcn.0042c1b0
add esp, 8
test eax, eax
jne 0x423d09
mov eax, dword [edi + 0x7c]
xor ecx, ecx
mov word [esi + eax + 6], cx
mov eax, dword [edi + 0x7c]
mov word [esi + eax + 4], cx
mov eax, dword [edi + 0x84]
inc ebx
mov ecx, dword [ebp - 0x14c]
add esi, 0x10
mov edx, dword [ebp - 0x13c]
inc edx
mov dword [ebp - 0x13c], edx
cmp ebx, dword [ecx + eax + 0xc]
jl 0x423ce3
mov esi, dword [ebp - 0x138]
inc esi
add ecx, 0x18
mov dword [ebp - 0x138], esi
mov dword [ebp - 0x14c], ecx
cmp esi, dword [edi + 0x88]
jl 0x423cd0
mov ebx, dword [ebp - 0x130]
push ebx
push dword [edi + 0x7c]
push dword [ebp - 0x11c]
call fcn.0042bfc0
add esp, 0xc
test ebx, ebx
jle 0x423dba
xor edx, edx
nop dword [eax + eax]
mov eax, dword [edi + 0x7c]
cmp word [edx + eax + 4], 0
lea ecx, [edx + eax]
jne 0x423d8f
cmp word [ecx + 6], 0
jne 0x423d8f
mov dword [ecx + 0xc], 0
mov eax, dword [edi + 0x7c]
cmp dword [eax + edx + 0xc], 0
je 0x423db2
movzx ecx, word [eax + edx + 0xa]
mov esi, dword [ebp - 0x114]
movzx eax, word [eax + edx + 6]
add ecx, eax
cmp dword [esi + 0x20], ecx
cmovge ecx, dword [esi + 0x20]
mov dword [esi + 0x20], ecx
add edx, 0x10
sub ebx, 1
jne 0x423d70
mov ecx, dword [ebp - 0x140]
add edi, 0x8c
mov esi, dword [ebp - 0x114]
inc ecx
mov eax, dword [ebp - 0x124]
add eax, 0x74
mov dword [ebp - 0x140], ecx
mov dword [ebp - 0x124], eax
cmp ecx, dword [esi + 0x4c]
jl 0x423af0
test byte [esi + 4], 1
mov eax, dword [esi + 0x20]
jne 0x423e19
lea ecx, [eax - 1]
mov eax, ecx
sar eax, 1
or ecx, eax
mov eax, ecx
sar eax, 2
or ecx, eax
mov eax, ecx
sar eax, 4
or ecx, eax
mov eax, ecx
sar eax, 8
or ecx, eax
mov eax, ecx
sar eax, 0x10
or eax, ecx
movss xmm1, dword [0x717d94]
lea ecx, [eax + 1]
mov eax, dword [esi + 0x1c]
movaps xmm2, xmm1
mov dword [esi + 0x20], ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm2, xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
imul ecx, eax
divss xmm1, xmm0
push ecx
movss dword [esi + 0x24], xmm2
movss dword [esi + 0x28], xmm1
call fcn.00414f30
mov ecx, dword [esi + 0x20]
imul ecx, dword [esi + 0x1c]
mov dword [esi + 0x14], eax
push ecx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [esi + 0x14]
add esp, 0x10
cmp dword [esi + 0x4c], 0
mov dword [ebp - 0x164], eax
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x124], 0
jle 0x424064
mov ebx, dword [ebp - 0x134]
xor ecx, ecx
mov edx, dword [ebp - 0x120]
sub ebx, 0xffffff80
mov edi, dword [ebp - 0x15c]
mov dword [ebp - 0x140], ecx
mov dword [ebp - 0x118], ebx
mov esi, dword [esi + 0x54]
lea eax, [ebx - 0x80]
push dword [ebx - 4]
add esi, ecx
mov dword [ebp - 0x120], eax
push dword [ebx + 8]
push dword [ebx + 4]
cmp dword [esi + 0x14], 8
push eax
cmovbe edx, dword [esi + 0x14]
lea eax, [ebp - 0x184]
cmp dword [esi + 0x18], 8
push eax
cmovbe edi, dword [esi + 0x18]
mov dword [ebp - 0x16c], edx
mov dword [ebp - 0x168], edi
call fcn.0042cc40
movss xmm1, dword [esi + 0x44]
add esp, 0x14
ucomiss xmm1, dword [0x717d94]
movss dword [ebp - 0x148], xmm1
lahf
test ah, 0x44
jnp 0x424001
xor esi, esi
nop dword [eax + eax]
movd xmm0, esi
mov eax, esi
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x718220]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
call fcn.00442cd0
movss xmm1, dword [ebp - 0x148]
mov edx, 0xff
cmp eax, edx
movzx ecx, al
cmovbe edx, ecx
mov byte [ebp + esi - 0x110], dl
inc esi
cmp esi, 0x100
jb 0x423f20
mov eax, dword [ebp - 0x120]
mov ebx, dword [eax + 0x7c]
mov eax, dword [ebp - 0x118]
mov eax, dword [eax]
shl eax, 4
add eax, ebx
cmp ebx, eax
je 0x423ffb
mov ecx, dword [ebp - 0x174]
mov edx, dword [ebp - 0x120]
nop
cmp dword [ebx + 0xc], 0
je 0x423fe6
movzx eax, word [ebx + 0xa]
movzx edx, word [ebx + 8]
movzx edi, word [ebx + 6]
movzx esi, word [ebx + 4]
imul eax, ecx
add eax, dword [ebp - 0x164]
add edx, eax
test edi, edi
je 0x423fe0
xor ecx, ecx
test esi, esi
je 0x423fd3
nop dword [eax + eax]
movzx eax, byte [ecx + edx]
mov al, byte [ebp + eax - 0x110]
mov byte [ecx + edx], al
inc ecx
cmp ecx, esi
jl 0x423fc0
mov ecx, dword [ebp - 0x174]
dec edi
add edx, ecx
test edi, edi
jg 0x423fb5
mov edx, dword [ebp - 0x120]
mov eax, dword [ebp - 0x118]
add ebx, 0x10
mov eax, dword [eax]
shl eax, 4
add eax, dword [edx + 0x7c]
cmp ebx, eax
jne 0x423f90
mov ebx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x124]
mov esi, dword [ebp - 0x114]
inc eax
mov ecx, dword [ebp - 0x140]
mov dword [ebx - 4], 0
add ecx, 0x74
add ebx, 0x8c
mov dword [ebp - 0x124], eax
mov dword [ebp - 0x140], ecx
mov dword [ebp - 0x118], ebx
cmp eax, dword [esi + 0x4c]
jge 0x42404c
mov edi, dword [ebp - 0x168]
mov edx, dword [ebp - 0x16c]
jmp 0x423eb5
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0x154], eax
mov eax, dword [ebp - 0x180]
mov dword [ebp - 0x11c], eax
push dword [ebp - 0x154]
call fcn.00414f60
push dword [ebp - 0x11c]
call fcn.00414f60
push dword [ebp - 0x144]
call fcn.00414f60
add esp, 0xc
mov dword [ebp - 0x13c], 0
cmp dword [esi + 0x4c], 0
jle 0x4244cb
mov edi, dword [ebp - 0x134]
xor edx, edx
movss xmm3, dword [0x717d90]
add edi, 4
mov dword [ebp - 0x138], edx
mov dword [ebp - 0x120], edi
nop dword [eax + eax]
mov esi, dword [esi + 0x54]
add esi, edx
mov dword [ebp - 0x11c], esi
mov al, byte [esi + 0x3c]
mov ebx, dword [esi + 0x70]
mov dword [ebp - 0x144], ebx
mov byte [ebp - 0x129], al
test al, al
je 0x4240f9
mov ecx, ebx
call fcn.00422370
mov al, byte [esi + 0x3c]
movss xmm3, dword [0x717d90]
mov byte [ebp - 0x129], al
mov esi, dword [ebp - 0x120]
mov eax, pe_nt_image_headers32
mov edi, dword [edi + 0x18]
cwde
mov esi, dword [esi]
movzx ecx, byte [edi + esi + 4]
movzx edx, byte [edi + esi + 7]
movsx ecx, cx
imul ecx, eax
movzx eax, byte [edi + esi + 5]
add cx, ax
movsx eax, cx
movzx ecx, byte [edi + esi + 6]
mov dword [ebp - 0x124], eax
mov eax, pe_nt_image_headers32
mov esi, dword [ebp - 0x124]
cwde
movsx ecx, cx
imul ecx, eax
mov eax, esi
add dx, cx
mov ecx, dword [ebp - 0x11c]
movsx edi, dx
sub eax, edi
cmp byte [ebp - 0x129], 0
movss xmm1, dword [ecx + 0x10]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [ebp - 0x124], xmm1
jne 0x424214
mov ecx, ebx
call fcn.004230e0
mov ecx, dword [ebp - 0x11c]
xorps xmm4, xmm4
movd xmm1, esi
cvtdq2ps xmm1, xmm1
mov eax, dword [ecx + 0x10]
mov dword [ebx], eax
mov eax, dword [ebp - 0x114]
mov dword [ebx + 0x44], eax
xor eax, eax
comiss xmm1, xmm4
mov dword [ebx + 0x40], ecx
mulss xmm1, dword [ebp - 0x124]
seta al
movss xmm3, dword [0x717d90]
lea eax, [eax*2 - 1]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
movd xmm1, edi
cvtdq2ps xmm1, xmm1
cvttss2si eax, xmm0
movd xmm2, eax
xor eax, eax
comiss xmm1, xmm4
mulss xmm1, dword [ebp - 0x124]
seta al
cvtdq2ps xmm2, xmm2
lea eax, [eax*2 - 1]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebx + 0x48], xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebx + 0x4c], xmm0
jmp 0x424219
movss xmm2, dword [ebx + 0x48]
inc word [ebx + 0x3e]
addss xmm2, xmm3
mov edi, dword [ebp - 0x120]
xor esi, esi
movss xmm1, dword [ecx + 0x28]
movss dword [ebp - 0x154], xmm1
mov dword [ebp - 0x140], esi
cvttss2si eax, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ecx + 0x2c]
movss dword [ebp - 0x158], xmm0
cmp dword [edi + 0x84], esi
jle 0x424494
xor edx, edx
mov dword [ebp - 0x148], edx
nop dword [eax + eax]
mov eax, dword [edi + 0x80]
xor ebx, ebx
add eax, edx
mov dword [ebp - 0x124], eax
cmp dword [eax + 0xc], ebx
jle 0x424478
xor esi, esi
nop dword [eax + eax]
mov edx, dword [eax + 0x10]
movzx edi, word [esi + edx]
test di, di
jne 0x4242b5
cmp word [esi + edx + 4], di
jne 0x4242b5
cmp word [esi + edx + 2], di
jne 0x4242b5
cmp word [esi + edx + 6], di
je 0x424459
mov edi, dword [eax + 4]
add edi, ebx
cmp byte [ecx + 0x3c], 0
je 0x424304
mov eax, dword [ebp - 0x144]
movzx ecx, di
cmp ecx, dword [eax + 0x28]
jge 0x4242fe
mov eax, dword [eax + 0x30]
movzx eax, word [eax + ecx*2]
mov ecx, 0xffff
cmp ax, cx
je 0x4242fe
lea ecx, [eax + eax*4]
mov eax, dword [ebp - 0x144]
mov eax, dword [eax + 0x18]
lea eax, [eax + ecx*8]
mov ecx, dword [ebp - 0x11c]
test eax, eax
jne 0x424453
jmp 0x424304
mov ecx, dword [ebp - 0x11c]
movss xmm0, dword [esi + edx + 0x10]
movss xmm7, dword [ecx + 0x34]
comiss xmm7, xmm0
ja 0x42431d
movss xmm7, dword [ecx + 0x38]
minss xmm7, xmm0
ucomiss xmm0, xmm7
movaps xmm6, xmm1
lahf
test ah, 0x44
jnp 0x424349
cmp byte [ecx + 0x1c], 0
movaps xmm6, xmm7
subss xmm6, xmm0
mulss xmm6, xmm3
je 0x424345
cvttss2si eax, xmm6
movd xmm6, eax
cvtdq2ps xmm6, xmm6
addss xmm6, xmm1
mov eax, dword [ebp - 0x114]
sub esp, 0x24
movss xmm3, dword [0x717d94]
movss xmm2, dword [0x717d94]
mov ecx, dword [ebp - 0x144]
movd xmm0, dword [eax + 0x1c]
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x20], xmm7
divss xmm3, xmm0
movd xmm0, dword [eax + 0x20]
movzx eax, word [esi + edx]
cvtdq2ps xmm0, xmm0
movd xmm5, eax
movzx eax, word [esi + edx + 2]
divss xmm2, xmm0
movd xmm4, eax
movzx eax, word [esi + edx + 4]
cvtdq2ps xmm4, xmm4
movd xmm1, eax
movzx eax, word [esi + edx + 6]
mulss xmm4, xmm2
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm5, xmm5
mulss xmm0, xmm2
xorps xmm2, xmm2
mulss xmm1, xmm3
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [esi + edx + 0x18]
addss xmm0, xmm2
movss dword [esp + 0x18], xmm1
movss dword [esp + 0x14], xmm4
mulss xmm5, xmm3
addss xmm0, dword [ebp - 0x158]
movss dword [esp + 0x10], xmm5
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esi + edx + 0x14]
addss xmm0, xmm2
addss xmm0, xmm6
movss dword [esp + 8], xmm0
movss xmm0, dword [esi + edx + 0xc]
addss xmm0, xmm2
addss xmm0, dword [ebp - 0x158]
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + edx + 8]
addss xmm0, xmm2
addss xmm0, xmm6
movss dword [esp], xmm0
push edi
call fcn.004211b0
movss xmm1, dword [ebp - 0x154]
movss xmm3, dword [0x717d90]
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x124]
inc ebx
add esi, 0x1c
cmp ebx, dword [eax + 0xc]
jl 0x424290
mov edx, dword [ebp - 0x148]
mov esi, dword [ebp - 0x140]
mov edi, dword [ebp - 0x120]
inc esi
add edx, 0x18
mov dword [ebp - 0x140], esi
mov dword [ebp - 0x148], edx
cmp esi, dword [edi + 0x84]
jl 0x424270
mov ecx, dword [ebp - 0x13c]
add edi, 0x8c
mov esi, dword [ebp - 0x114]
inc ecx
mov edx, dword [ebp - 0x138]
add edx, 0x74
mov dword [ebp - 0x13c], ecx
mov dword [ebp - 0x138], edx
mov dword [ebp - 0x120], edi
cmp ecx, dword [esi + 0x4c]
jl 0x4240c0
push dword [ebp - 0x150]
call fcn.00414f60
push dword [ebp - 0x128]
call fcn.00414f60
push dword [ebp - 0x134]
call fcn.00414f60
push esi
call fcn.004233b0
add esp, 0x10
mov al, 1
jmp 0x42450b
push eax
jmp 0x424501
test ecx, ecx
je 0x424509
push ecx
call fcn.00414f60
add esp, 4
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00442579
mov esp, ebp
pop ebp
ret