Function at 0x42fb40
Capabilities:
Encode data using xor
Hash data with crc32
Resolve function by parsing pe exports

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x441820
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xd8
mov eax, dword [0x44b040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x28], edx
mov edi, dword [0x44b618]
mov dword [ebp - 0x34], edi
mov eax, dword [edi + 0x3f8c]
mov byte [eax + 0xb0], 1
mov esi, dword [edi + 0x3f8c]
mov dword [ebp - 0x2c], esi
cmp byte [esi + 0xb3], 0
je 0x42fbb3
xor al, al
jmp 0x430944
cmp dword [esi + 0x198], 0
jne 0x42fbcb
cmp dword [edi + 0x4ce0], 0
lea eax, [esi + 0x234]
je 0x42fbd1
lea eax, [esi + 0x204]
movss xmm1, dword [eax]
lea ecx, [ebp - 0x44]
subss xmm1, dword [esi + 0xf8]
mov eax, dword [ebx + 0x10]
xorps xmm2, xmm2
push dword [eax + 4]
maxss xmm1, dword [0x447fac]
push dword [eax]
call fcn.00414fd0
movss xmm2, dword [esi + 0xf8]
add esp, 8
movss xmm0, dword [esi + 0xfc]
movss xmm3, dword [ebp - 0x44]
movss xmm1, dword [ebp - 0x40]
addss xmm3, xmm2
mov eax, dword [ebp - 0x28]
addss xmm1, xmm0
movss dword [ebp - 0x78], xmm2
movss dword [ebp - 0x74], xmm0
movss dword [ebp - 0x70], xmm3
movss dword [ebp - 0x6c], xmm1
cmp dword [edi + 0x4ce4], eax
jne 0x42fc3d
int3
lea ecx, [edi + 0x4d04]
push ecx
push eax
call fcn.00407040
mov edx, eax
mov esi, dword [edx]
cmp esi, 0xffffffff
je 0x42fc61
shl esi, 9
add esi, dword [edi + 0x4d00]
mov dword [ebp - 0x3c], esi
jmp 0x42fc79
mov eax, dword [edi + 0x4d10]
lea ecx, [edi + 0x4cf8]
mov dword [edx], eax
call fcn.00436490
mov esi, eax
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x40], eax
mov eax, esi
sub eax, dword [edi + 0x4d00]
sar eax, 9
mov dword [ebp - 0x38], eax
mov eax, dword [edi + 0x4ce8]
inc eax
mov dword [ebp - 0x48], 6
mov dword [ebp - 0x30], eax
mov dword [edi + 0x4ce8], eax
cmp eax, dword [edi + 0x4cec]
jle 0x42fe40
push 0x6c
lea eax, [ebp - 0xe4]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 0xe0], 0xbf800000
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 4], 0
mov eax, dword [edi + 0x4cf0]
cmp ecx, eax
jle 0x42fdd4
test eax, eax
je 0x42fcf8
cdq
sub eax, edx
mov edx, dword [edi + 0x4cf0]
sar eax, 1
add eax, edx
jmp 0x42fd03
mov edx, dword [edi + 0x4cf0]
mov eax, 8
cmp eax, ecx
mov edi, ecx
cmovg edi, eax
mov eax, edi
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 0x34]
cmp eax, edx
jle 0x42fdd4
imul ecx, eax, 0x6c
call fcn.00409490
mov edx, dword [edi + 0x4cf4]
mov dword [ebp - 0x4c], eax
test edx, edx
je 0x42fdc2
imul ecx, dword [edi + 0x4cec], 0x6c
push ecx
push edx
push eax
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [edi + 0x4cf4]
add esp, 0xc
mov dword [ebp - 0x20], edx
test edx, edx
je 0x42fdb5
mov ecx, dword [0x44b618]
test ecx, ecx
je 0x42fdb5
mov eax, dword [ecx + 0x3f08]
mov dword [ebp - 0x24], eax
movsx eax, word [ecx + 0x5ee4]
mov edi, dword [ebp - 0x24]
add eax, 0xbdd
cmp dword [ecx + eax*8], edi
mov edi, dword [ebp - 0x34]
lea eax, [ecx + eax*8]
je 0x42fdab
movsx eax, word [ecx + 0x5ee4]
inc eax
cdq
idiv dword [ebp - 0x48]
movzx eax, dx
mov edx, dword [ebp - 0x24]
mov word [ecx + 0x5ee4], ax
cwde
add eax, 0xbdd
lea eax, [ecx + eax*8]
mov dword [eax], edx
xor edx, edx
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x20]
inc word [eax + 6]
inc dword [ecx + 0x5ee0]
push edx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, dword [ebp - 0x4c]
add esp, 4
mov ecx, dword [ebp - 0x30]
mov dword [edi + 0x4cf4], eax
mov eax, dword [ebp - 0x1c]
mov dword [edi + 0x4cf0], eax
mov eax, dword [edi + 0x4cec]
cmp ecx, eax
jle 0x42fe16
mov edx, ecx
imul eax, eax, 0x6c
sub edx, dword [edi + 0x4cec]
nop dword [eax]
mov edi, dword [edi + 0x4cf4]
lea esi, [ebp - 0xe4]
add edi, eax
mov ecx, 0x1b
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x34]
add eax, 0x6c
sub edx, 1
jne 0x42fdf0
mov esi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x30]
mov dword [edi + 0x4cec], ecx
lea ecx, [ebp - 0xd0]
mov dword [ebp - 4], 1
call fcn.00428530
lea ecx, [ebp - 0xc8]
call fcn.0041be50
mov dword [ebp - 4], 0xffffffff
imul ecx, dword [edi + 0x4ce8], 0x6c
mov eax, dword [edi + 0x4cf4]
mov edx, dword [ebp - 0x2c]
add eax, 0xffffff94
add ecx, eax
mov eax, dword [ebp - 0x38]
mov dword [esi + 0xc], ecx
mov dword [ebp - 0x30], ecx
mov dword [ecx], eax
mov ecx, 0x8000
mov eax, dword [esi + 0xc]
add eax, 0x14
mov dword [esi + 0x168], eax
mov dword [eax], 0
mov dword [eax + 4], 1
mov eax, 0x2000
mov byte [esi + 0x1f7], 1
test byte [edx + 0xc], 0x40
cmovne ecx, eax
mov eax, dword [edx + 0x30c]
mov dword [ebp - 0x1c], ecx
or dword [ebp - 0x1c], 0x10
test dword [eax + 0xc], 0x100
mov eax, dword [ebp - 0x1c]
cmove eax, ecx
or eax, 0x10
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0x3c]
mov dword [ebp - 0x50], eax
cmp eax, dword [edi + 0x3f08]
je 0x42fec3
xor eax, eax
jmp 0x42fec8
movsx eax, word [esi + 0x4c]
inc eax
mov ecx, dword [ebx + 0x10]
movss xmm0, dword [ebx + 0x14]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x28]
mov dword [esi], eax
mov eax, dword [ebp - 0x1c]
mov dword [esi + 4], eax
mov eax, dword [edi + 0x3f08]
mov edi, dword [ebp - 0x24]
mov dword [esi + 0x158], edx
mov dword [esi + 0x154], edx
mov edx, dword [ebp - 0x30]
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], 3
mov byte [esi + 0x1ea], 0
movss dword [esi + 0xa0], xmm0
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], ecx
mov word [esi + 0x4c], di
test edi, edi
jle 0x430119
mov ecx, dword [esi + 0x184]
cmp ecx, edi
jge 0x430082
mov eax, dword [esi + 0x188]
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x54], 0xffffffff
mov dword [ebp - 0x58], 0xffffffff
cmp ecx, eax
jne 0x43005a
inc ecx
test eax, eax
je 0x42ff80
cdq
sub eax, edx
mov edx, dword [esi + 0x188]
sar eax, 1
add eax, edx
jmp 0x42ff8b
mov edx, dword [esi + 0x188]
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
mov dword [ebp - 0x18], ecx
cmp ecx, edx
jle 0x43005a
lea ecx, [ecx + ecx*2]
shl ecx, 3
call fcn.00409490
mov edx, dword [esi + 0x18c]
mov dword [ebp - 0x20], eax
test edx, edx
je 0x43004b
mov ecx, dword [esi + 0x184]
lea ecx, [ecx + ecx*2]
shl ecx, 3
push ecx
push edx
push eax
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [esi + 0x18c]
add esp, 0xc
mov dword [ebp - 0x4c], edx
test edx, edx
je 0x43003e
mov ecx, dword [0x44b618]
test ecx, ecx
je 0x43003e
mov eax, dword [ecx + 0x3f08]
mov dword [ebp - 0x1c], eax
movsx eax, word [ecx + 0x5ee4]
mov edi, dword [ebp - 0x1c]
add eax, 0xbdd
cmp dword [ecx + eax*8], edi
mov edi, dword [ebp - 0x24]
lea eax, [ecx + eax*8]
je 0x430034
movsx eax, word [ecx + 0x5ee4]
inc eax
cdq
idiv dword [ebp - 0x48]
movzx eax, dx
mov edx, dword [ebp - 0x1c]
mov word [ecx + 0x5ee4], ax
cwde
add eax, 0xbdd
lea eax, [ecx + eax*8]
mov dword [eax], edx
xor edx, edx
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x4c]
inc word [eax + 6]
inc dword [ecx + 0x5ee0]
push edx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, dword [ebp - 0x20]
add esp, 4
mov dword [esi + 0x18c], eax
mov eax, dword [ebp - 0x18]
mov dword [esi + 0x188], eax
mov eax, dword [esi + 0x184]
movups xmm0, xmmword [ebp - 0x68]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x18c]
movups xmmword [eax + ecx*8], xmm0
movq xmm0, qword [ebp - 0x58]
movq qword [eax + ecx*8 + 0x10], xmm0
inc dword [esi + 0x184]
push dword [ebp - 0x28]
xor edx, edx
mov ecx, str.Instances
call fcn.00406850
mov ecx, dword [0x44b618]
mov edx, eax
add esp, 4
mov dword [ebp - 0x1c], edx
cmp dword [ecx + 0x3fc4], edx
jne 0x4300c2
push ecx
push str.Instances
mov edx, 0xb
mov ecx, eax
call fcn.0041bc50
mov edx, dword [ebp - 0x1c]
add esp, 8
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x18], edi
not edx
lea edi, [ebp - 0x18]
mov esi, 4
nop
movzx eax, byte [edi]
lea edi, [edi + 1]
movzx ecx, dl
xor ecx, eax
shr edx, 8
xor edx, dword [ecx*4 + 0x443808]
sub esi, 1
jne 0x4300d0
mov eax, dword [0x44b618]
not edx
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], edx
cmp dword [eax + 0x3fc4], edx
jne 0x43011f
mov eax, dword [ebp - 0x24]
mov edx, 4
push ecx
mov ecx, dword [ebp - 0x1c]
push eax
call fcn.0041bc50
mov edx, dword [ebp - 0x1c]
add esp, 8
jmp 0x43011f
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x1c], edx
movsx eax, word [esi + 0x4c]
test eax, eax
jne 0x43012f
mov dword [esi + 0x16c], edx
jmp 0x43013c
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x18c]
mov dword [eax + ecx*8 - 0x18], edx
movups xmm0, xmmword [ebp - 0x78]
mov eax, dword [0x44b618]
movups xmmword [esi + 0xd4], xmm0
movups xmmword [esi + 0xc4], xmm0
movups xmmword [esi + 0xe4], xmm0
mov ecx, dword [eax + 0x3f8c]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x28]
cmp dword [eax + 0x3fc4], ecx
jne 0x43017e
push ecx
push 0
mov edx, 0xd
call fcn.0041bc50
add esp, 8
mov edx, dword [ebp - 0x18]
add edx, 0xec
mov dword [ebp - 0x20], edx
mov ecx, dword [edx + 4]
cmp dword [edx], ecx
jne 0x4301bb
test ecx, ecx
je 0x4301a3
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [ebp - 0x20]
sar eax, 1
add eax, ecx
jmp 0x4301a8
mov eax, 8
mov ecx, dword [edx]
inc ecx
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, edx
call fcn.0041c480
mov edx, dword [ebp - 0x20]
mov ecx, dword [edx]
mov eax, dword [edx + 8]
mov edi, dword [ebp - 0x28]
mov dword [eax + ecx*4], edi
inc dword [edx]
mov edi, dword [ebp - 0x24]
test edi, edi
jle 0x430244
mov eax, dword [0x44b618]
mov edi, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x3f8c]
mov dword [ebp - 0x18], ecx
cmp dword [eax + 0x3fc4], edi
jne 0x4301fd
push ecx
push 0
mov edx, 0xd
mov ecx, edi
call fcn.0041bc50
mov ecx, dword [ebp - 0x18]
add esp, 8
lea edx, [ecx + 0xec]
mov ecx, dword [edx + 4]
mov dword [ebp - 0x20], edx
cmp dword [edx], ecx
jne 0x43023a
test ecx, ecx
je 0x43021f
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [ebp - 0x20]
sar eax, 1
add eax, ecx
jmp 0x430224
mov eax, 8
mov ecx, dword [edx]
inc ecx
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, edx
call fcn.0041c480
mov edi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
mov ecx, dword [edx]
mov eax, dword [edx + 8]
mov dword [eax + ecx*4], edi
inc dword [edx]
mov ecx, dword [esi + 0x158]
xorps xmm2, xmm2
mov edi, dword [ebp - 0x30]
lea edx, [ecx + 0x21c]
mov dword [ebp - 0x28], ecx
mov eax, dword [ecx + 0x13c]
mov dword [esi + 0x88], eax
movups xmm0, xmmword [edx]
movups xmmword [esi + 0x134], xmm0
mov al, byte [ecx + 0xb3]
mov byte [esi + 0x1fd], al
movups xmm0, xmmword [ecx + 0x1fc]
mov eax, dword [ebp - 0x2c]
movups xmmword [edi + 0x28], xmm0
movups xmm0, xmmword [ecx + 0x20c]
movups xmmword [edi + 0x38], xmm0
mov eax, dword [eax + 0x140]
mov dword [edi + 0x60], eax
mov eax, dword [ecx + 0x128]
mov ecx, dword [ecx + 0x12c]
mov dword [edi + 0x4c], ecx
mov dword [edi + 0x48], eax
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x120]
mov ecx, dword [ecx + 0x124]
mov dword [edi + 0x54], ecx
mov ecx, dword [ebp - 0x28]
mov dword [edi + 0x50], eax
mov eax, dword [ecx + 0x110]
mov ecx, dword [ecx + 0x114]
mov dword [edi + 0x5c], ecx
mov ecx, dword [ebp - 0x2c]
mov dword [edi + 0x58], eax
mov eax, dword [ecx + 0x1ac]
mov dword [edi + 0x64], eax
mov eax, dword [ecx + 0x1b4]
mov dword [edi + 0x68], eax
mov eax, dword [ebp - 0x28]
mov edi, dword [ebp - 0x34]
mov dword [eax + 0x120], 0
mov dword [eax + 0x124], 0
mov dword [eax + 0x128], 0
mov dword [eax + 0x12c], 0
movss xmm1, dword [edi + 0x3904]
xor edi, edi
movaps xmm0, xmm1
movss dword [esi + 0x9c], xmm1
addss xmm0, xmm2
movss dword [esi + 0x94], xmm2
mov dword [esi + 0x48], 0xffffffff
cmp eax, ecx
mov dword [esi + 0x44], 0xffffffff
lea ecx, [esi + 0xe4]
mov dword [esi + 0x6c], 0
cmove edx, ecx
mov word [esi + 0x6a], di
movss dword [esi + 0x98], xmm0
xorps xmm0, xmm0
subss xmm0, xmm2
movss dword [esi + 0x90], xmm0
movups xmm0, xmmword [edx]
movups xmmword [esi + 0xf4], xmm0
movss xmm3, dword [esi + 0xf4]
movss xmm4, dword [esi + 0xf8]
maxss xmm4, dword [ecx + 4]
maxss xmm3, dword [ecx]
movss dword [esi + 0xf8], xmm4
movss dword [esi + 0xf4], xmm3
movss xmm1, dword [esi + 0xfc]
movss xmm0, dword [esi + 0x100]
minss xmm1, dword [ecx + 8]
minss xmm0, dword [ecx + 0xc]
movss dword [esi + 0xfc], xmm1
movss dword [esi + 0x100], xmm0
movss xmm2, dword [esi + 0x138]
comiss xmm2, xmm4
movss xmm1, dword [esi + 0x13c]
ja 0x4303f6
movss xmm2, dword [esi + 0x140]
minss xmm2, xmm4
movss xmm0, dword [esi + 0x134]
comiss xmm0, xmm3
jbe 0x430408
movaps xmm1, xmm0
jmp 0x43040c
minss xmm1, xmm3
movss dword [esi + 0xf4], xmm1
movss dword [esi + 0xf8], xmm2
movss xmm2, dword [esi + 0x100]
movss xmm1, dword [esi + 0x138]
comiss xmm1, xmm2
ja 0x43043d
movss xmm1, dword [esi + 0x140]
minss xmm1, xmm2
movss xmm2, dword [esi + 0xfc]
comiss xmm0, xmm2
ja 0x430456
movss xmm0, dword [esi + 0x13c]
minss xmm0, xmm2
movss dword [esi + 0xfc], xmm0
movss dword [esi + 0x100], xmm1
movss xmm0, dword [eax + 0x228]
xor eax, eax
mov dword [esi + 0x60], edi
mov dword [esi + 0x5c], edi
mov edi, dword [ebp - 0x34]
mov dword [esi + 0x1da], eax
mov dword [esi + 0x1de], eax
mov dword [esi + 0x1ba], eax
mov eax, dword [ebp - 0x50]
movss dword [esi + 0x100], xmm0
inc eax
movss xmm0, dword [esi + 0xe8]
movss dword [esi + 0x54], xmm0
movss dword [esi + 0x50], xmm0
mov byte [esi + 0x1f6], 1
cmp eax, dword [edi + 0x3f08]
jge 0x4304bf
mov byte [esi + 0x1f9], 0
mov eax, dword [ebp - 0x30]
mov ecx, 0x2b
movss xmm1, dword [0x447fac]
mov dword [eax + 8], 0
call fcn.00407220
movss xmm1, dword [0x447fac]
mov ecx, 0x2c
mov dword [esi + 0x78], eax
call fcn.00407220
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x38]
mov dword [esi + 0x7c], eax
mov eax, dword [ebp - 0x2c]
mov dword [edi + 0x4ce0], esi
mov byte [eax + 0x158], 0
mov dword [eax + 0x19c], edx
cmp ecx, eax
je 0x430519
mov dword [ecx + 0x19c], edx
test byte [ebp - 0x40], 2
je 0x430526
mov byte [esi + 0x1f5], 1
lea ecx, [edi + 0x4d18]
mov dword [ebp - 0x20], ecx
cmp edx, dword [ecx]
jl 0x4305a3
mov eax, dword [ecx + 4]
inc edx
mov dword [ebp - 0x40], 0xbf800000
mov dword [ebp - 0x2c], edx
cmp edx, eax
jle 0x430575
test eax, eax
je 0x430559
cdq
sub eax, edx
mov edx, dword [ebp - 0x2c]
sar eax, 1
add eax, dword [ecx + 4]
mov dword [ebp - 0x24], eax
jmp 0x430560
mov dword [ebp - 0x24], 8
cmp dword [ebp - 0x24], edx
mov eax, edx
cmovg eax, dword [ebp - 0x24]
push eax
call fcn.0041c480
lea ecx, [edi + 0x4d18]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x2c]
cmp eax, edx
jle 0x43059e
mov eax, dword [ebp - 0x40]
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x2c]
mov ecx, dword [edi + 8]
mov dword [ecx + edx*4], eax
inc edx
cmp edx, esi
jl 0x430587
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x38]
mov dword [ecx], eax
movsd xmm0, qword [edi + 0x3f00]
mov eax, dword [edi + 0x4d20]
cvtpd2ps xmm0, xmm0
movss dword [eax + edx*4], xmm0
movsd xmm0, qword [edi + 0x3f00]
mov eax, dword [ebp - 0x30]
cvtpd2ps xmm0, xmm0
movss dword [eax + 4], xmm0
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x38], eax
mov eax, 0x92492493
mov byte [esi + 0x1fc], 0
mov ecx, dword [esi + 0x14]
sub ecx, dword [esi + 0x10]
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x40], eax
je 0x430613
cmp eax, 3
je 0x430613
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x38], eax
mov dword [esi + 8], 0
cmp dword [esi + 8], 0
jne 0x430686
mov ecx, 0x17c
call fcn.00409490
push 0x17c
push 0
push eax
mov dword [esi + 8], eax
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esi + 8]
add esp, 0xc
mov dword [esi + 0x10], ecx
lea eax, [ecx + 0x150]
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
lea eax, [ecx + 0x156]
mov dword [esi + 0x1c], eax
lea eax, [ecx + 0x158]
mov dword [esi + 0x20], eax
lea eax, [ecx + 0x170]
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
lea eax, [ecx + 0x174]
mov dword [esi + 0x2c], eax
lea eax, [ecx + 0x178]
mov dword [esi + 0x30], eax
mov byte [esi + 0x1f1], 1
mov byte [esi + 0x1ec], 1
cmp byte [esi + 0x1f4], 0
je 0x4306ad
mov word [esi + 0x1f1], pe_nt_image_headers32
mov byte [esi + 0x1ec], 1
mov byte [esi + 0x1f4], 0
mov dword [esi + 0x34], 0
cmp byte [esi + 0x1ec], 0
je 0x430806
or eax, 0xffffffff
mov dword [esi + 0x38], 0xffffffff
xor edi, edi
mov word [esi + 0x4e], ax
mov word [esi + 0x1d8], ax
mov word [esi + 0x1c8], ax
mov word [esi + 0x1c6], ax
mov word [esi + 0x1cc], ax
mov word [esi + 0x1c4], ax
mov word [esi + 0x1c0], ax
mov word [esi + 0x1be], ax
xor eax, eax
mov byte [esi + 0x1ed], 1
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], eax
nop word [eax + eax]
mov edx, dword [esi + 0x10]
mov ecx, dword [ebp - 0x20]
add edx, eax
mov dword [ebp - 0x50], edx
test ecx, ecx
je 0x430735
cmp edi, dword [ebp - 0x40]
jge 0x430735
lea esi, [eax + ecx]
mov edi, edx
mov ecx, 0x1c
rep movsd dword es:[edi], dword [esi]
jmp 0x4307d7
movss xmm0, dword [edx + 0x14]
lea eax, [ebp - 0xe8]
push 0x70
push 0
push eax
movss dword [ebp - 0x18], xmm0
call sub.VCRUNTIME140.dll_memset
mov edx, dword [ebp - 0x50]
lea esi, [ebp - 0xe8]
movss xmm0, dword [ebp - 0x18]
or eax, 0xffffffff
mov word [ebp - 0x98], ax
add esp, 0xc
and byte [ebp - 0x7b], 0xfc
mov ecx, 0x1c
mov word [ebp - 0x94], ax
mov edi, edx
mov word [ebp - 0x96], ax
mov word [ebp - 0x90], ax
mov word [ebp - 0x92], ax
mov word [ebp - 0x8e], ax
mov eax, 0xff
mov dword [ebp - 0xd8], 0xbf800000
mov dword [ebp - 0xd0], 0xbf800000
mov dword [ebp - 0x8a], 0xff00ff
mov word [ebp - 0x8c], ax
rep movsd dword es:[edi], dword [esi]
movss dword [edx + 0x14], xmm0
mov byte [edx + 0x69], 1
mov word [edx + 0x63], 0x101
mov byte [edx + 0x62], 1
mov esi, dword [ebp - 0x3c]
mov edi, dword [ebp - 0x30]
movzx ecx, di
mov eax, dword [esi + 0x18]
mov word [eax + edi*2], cx
inc edi
mov eax, dword [ebp - 0x2c]
add eax, 0x70
mov word [edx + 0x52], cx
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x2c], eax
cmp eax, 0x150
jl 0x430710
mov edi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x38]
test edx, edx
je 0x43087a
mov ecx, dword [0x44b618]
test ecx, ecx
je 0x430870
mov eax, dword [ecx + 0x3f08]
mov dword [ebp - 0x20], eax
movsx eax, word [ecx + 0x5ee4]
mov edi, dword [ebp - 0x20]
add eax, 0xbdd
cmp dword [ecx + eax*8], edi
mov edi, dword [ebp - 0x34]
lea eax, [ecx + eax*8]
je 0x430866
movsx eax, word [ecx + 0x5ee4]
inc eax
cdq
idiv dword [ebp - 0x48]
movzx eax, dx
mov edx, dword [ebp - 0x20]
mov word [ecx + 0x5ee4], ax
cwde
add eax, 0xbdd
lea eax, [ecx + eax*8]
mov dword [eax], edx
xor edx, edx
mov dword [eax + 4], edx
mov edx, dword [ebp - 0x38]
inc word [eax + 6]
inc dword [ecx + 0x5ee0]
push edx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
cmp byte [esi + 0x1f1], 0
je 0x43088a
mov ecx, esi
call fcn.00435260
movss xmm0, dword [esi + 0xb8]
ucomiss xmm0, dword [0x447f10]
movss xmm2, dword [edi + 0x3cf4]
lahf
test ah, 0x44
jnp 0x4308f0
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x4308f0
movaps xmm1, xmm2
mov eax, dword [esi + 0x10]
divss xmm1, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [eax + 0x10]
movss dword [eax + 0x10], xmm0
movaps xmm0, xmm1
mov eax, dword [esi + 0x10]
mulss xmm0, dword [eax + 0x80]
movss dword [eax + 0x80], xmm0
mov eax, dword [esi + 0x10]
mulss xmm1, dword [eax + 0xf0]
movss dword [eax + 0xf0], xmm1
mov ecx, dword [ebp - 0x28]
movss dword [esi + 0xb8], xmm2
mov byte [ecx + 0xb3], 1
cmp dword [esi + 0x15c], 0
jle 0x43093b
mov ecx, dword [esi + 0x160]
test ecx, ecx
jns 0x430931
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [esi + 0x15c]
call fcn.0041c870
mov dword [esi + 0x15c], 0
mov ecx, esi
call fcn.00430970
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00440024
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret