Function at 0x402f70
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xf0
mov esi, esp
mov dword [esi + 0xd8], ebp
mov dword [esi + 0xdc], esp
mov dword [esi + 0xe8], 0xffffffff
lea eax, [esi + 0xe0]
mov dword [esi + 0xe4], 0x406f00
mov ecx, dword fs:[0]
mov dword [esi + 0xe0], ecx
mov dword fs:[0], eax
cmp dword [0x42c280], 0xa
jl 0x402fe2
mov eax, dword [0x42c284]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402fe2
nop word cs:[eax + eax]
jmp 0x402fe0
push eax
mov ecx, esp
sub esp, 0x18
mov eax, esp
sub esp, 0x20
mov edi, esp
and edi, 0xfffffff0
mov esp, edi
push eax
sub esp, 0xc
mov edx, esp
and edx, 0xfffffff0
mov dword [esi + 8], edx
mov esp, edx
push eax
sub esp, 0xc
mov edx, esp
and edx, 0xfffffff0
mov dword [esi + 0x80], edx
mov esp, edx
push eax
sub esp, 0xc
mov edx, esp
and edx, 0xfffffff0
mov dword [esi + 0x70], edx
mov esp, edx
push eax
sub esp, 0xc
mov edx, esp
and edx, 0xfffffff0
mov dword [esi + 0x9c], edx
mov esp, edx
push eax
sub esp, 0xc
mov edx, esp
and edx, 0xfffffff0
mov dword [esi + 0x6c], edx
mov esp, edx
push eax
sub esp, 0xc
mov edx, esp
and edx, 0xfffffff0
mov dword [esi + 0xa8], edx
mov esp, edx
push eax
sub esp, 0xc
mov edx, esp
and edx, 0xfffffff0
mov dword [esi + 0x7c], edx
mov esp, edx
push eax
sub esp, 0x1c
mov edx, esp
and edx, 0xfffffff0
mov dword [esi + 0xa4], edx
mov esp, edx
push eax
sub esp, 0xc
mov edx, esp
and edx, 0xfffffff0
mov dword [esi + 0x98], edx
mov esp, edx
push eax
sub esp, 0xc
mov edx, esp
and edx, 0xfffffff0
mov dword [esi + 0x90], edx
mov esp, edx
push eax
sub esp, 0xc
mov edx, esp
and edx, 0xfffffff0
mov dword [esi + 0x94], edx
mov esp, edx
mov dword [esi + 0xc], esp
mov dword [esi + 0xa0], ecx
mov dword [ecx], 1
xorps xmm0, xmm0
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0
mov dword [esi + 0x10], eax
mov dword [eax + 0x14], 0xf
push eax
sub esp, 0x30
mov dword [esi + 0x58], esp
mov eax, dword [0x42c288]
mov dword [esi + 4], eax
mov eax, dword [0x42c28c]
mov dword [esi + 0x24], eax
cmp eax, 0xa
jl 0x4030f7
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
and eax, 1
jne 0x403320
mov eax, 0x3990ec3a
mov ecx, 0xba9ecb35
mov dword [esi + 0x60], ecx
mov dword [esi + 0x5c], eax
mov eax, 0x9ab342a7
mov ecx, 0x7e6f2050
mov dword [esi + 0x64], ecx
mov dword [esi + 0x2c], eax
mov eax, 0x316d4966
mov ecx, 0xa0bbbb8c
mov dword [esi + 0x74], ecx
mov dword [esi + 0x78], eax
mov ebx, 0xc8478848
mov eax, 0x88939068
mov dword [esi + 0x68], eax
mov eax, 0x39f5ec69
mov edx, 0xbaf7cb47
mov dword [esi + 0x1c], edx
mov dword [esi + 0x20], eax
mov eax, 0x9adf42c6
mov edx, 0x7e1a201e
mov dword [esi + 0x18], edx
mov dword [esi + 0x14], eax
mov eax, 0x310f490b
mov ecx, 0xa0c9bbe9
mov dword [esi + 0x88], ecx
mov dword [esi + 0x8c], eax
lea eax, [esi + 0x30]
xor ecx, ecx
mov dword [esi + 0xac], eax
mov dword [esi + 0x84], ebx
nop dword [eax + eax]
mov eax, dword [esi + 0x5c]
mov dword [edi], eax
mov eax, dword [esi + 0x60]
mov dword [edi + 4], eax
mov eax, dword [esi + 0x2c]
mov dword [edi + 8], eax
mov eax, dword [esi + 0x64]
mov dword [edi + 0xc], eax
mov eax, dword [esi + 0x78]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x74]
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], ebx
mov ecx, dword [esi + 0x68]
mov dword [edi + 0x1c], ecx
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x3c], eax
mov edx, dword [esi + 0x14]
mov dword [esi + 0x38], edx
mov eax, dword [esi + 0x88]
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x8c]
mov dword [esi + 0x40], eax
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], ebx
movaps xmm1, xmmword [edi]
mov eax, dword [esi + 0xac]
xorps xmm1, xmmword [eax]
movaps xmm2, xmmword [edi + 0x10]
movaps xmmword [edi], xmm1
xorps xmm2, xmmword [eax + 0x10]
movaps xmmword [edi + 0x10], xmm2
cmp dword [0x42c280], 0xa
jl 0x403332
mov ecx, dword [0x42c284]
lea eax, [ecx + 1]
imul eax, ecx
and eax, 1
je 0x403332
mov ebx, edx
mov eax, dword [esi + 0x10]
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
cmp dword [esi + 0x24], 0xa
jl 0x403247
mov ecx, dword [esi + 4]
lea eax, [ecx + 1]
imul eax, ecx
and eax, 1
jne 0x403330
mov dword [esi + 0xc], esp
xor eax, eax
lea edx, [esi + 0x30]
mov eax, dword [esi + 0x5c]
mov dword [edi], eax
mov eax, dword [esi + 0x60]
mov dword [edi + 4], eax
mov eax, dword [esi + 0x2c]
mov dword [edi + 8], eax
mov eax, dword [esi + 0x64]
mov dword [edi + 0xc], eax
mov eax, dword [esi + 0x78]
mov dword [edi + 0x10], eax
mov eax, dword [esi + 0x74]
mov dword [edi + 0x14], eax
mov eax, dword [esi + 0x84]
mov dword [edi + 0x18], eax
mov ecx, dword [esi + 0x68]
mov dword [edi + 0x1c], ecx
mov eax, ebx
mov ebx, dword [esi + 0x1c]
mov dword [esi + 0x34], ebx
mov ebx, dword [esi + 0x20]
mov dword [esi + 0x30], ebx
mov ebx, dword [esi + 0x18]
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x88]
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x8c]
mov dword [esi + 0x40], eax
mov dword [esi + 0x4c], ecx
mov eax, dword [esi + 0x84]
mov ebx, eax
mov dword [esi + 0x48], eax
movaps xmm1, xmmword [edi]
xorps xmm1, xmmword [edx]
movaps xmm2, xmmword [edi + 0x10]
movaps xmmword [edi], xmm1
xorps xmm2, xmmword [edx + 0x10]
movaps xmmword [edi + 0x10], xmm2
mov eax, dword [esi + 0x10]
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
push eax
sub esp, 0x30
mov dword [esi + 0x58], esp
mov eax, dword [0x42c288]
mov dword [esi + 4], eax
mov eax, dword [0x42c28c]
mov dword [esi + 0x24], eax
cmp eax, 0xa
jl 0x403180
mov edx, dword [esi + 4]
lea eax, [edx + 1]
imul eax, edx
and eax, 1
je 0x403180
nop word cs:[eax + eax]
jmp 0x403320
jmp 0x403330
mov eax, dword [esi + 0x58]
lea ebx, [eax + 0x1c]
xorps xmm0, xmm0
movups xmmword [eax + 0x1c], xmm0
mov dword [eax + 0x30], 0
mov dword [eax + 0x2c], 0
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_wcslen
add esp, 4
mov dword [esi + 0xe8], 0
mov dword [esi + 0x5c], ebx
mov ecx, ebx
push eax
push edi
call fcn.00406a20
mov eax, dword [0x42c284]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete cl
cmp dword [0x42c280], 0xa
setl al
or al, cl
mov ecx, dword [0x42c290]
mov dword [esi + 0x24], ecx
mov ecx, dword [0x42c294]
mov dword [esi + 4], ecx
jne 0x403431
mov ecx, dword [esi + 0x24]
lea edi, [ecx + 1]
imul edi, ecx
and edi, 1
test edi, edi
sete cl
cmp dword [esi + 4], 0xa
setl ah
or ah, cl
cmp ah, 1
mov ebx, dword [esi + 0x14]
je 0x4033da
mov ecx, 0xa9b853e
mov edi, 0xdbb59475
mov edx, dword [esi + 8]
mov dword [edx + 4], edi
mov dword [edx], ecx
mov edi, 1
cmp dword [esi + 4], 0xa
mov edx, dword [esi + 8]
jl 0x4033eb
test edi, edi
jne 0x403473
mov ecx, 0xa9b853e
mov edi, 0xdbb59475
mov dword [edx + 4], edi
mov dword [edx], ecx
mov ecx, 0xf59d27b5
mov edi, 0x7e7e527f
mov dword [edx + 0xc], edi
mov dword [edx + 8], ecx
test ah, ah
je 0x403473
xor ecx, ecx
lea edi, [esi + 0x30]
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x30], ecx
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x34], ecx
mov dword [esi + 0x38], ebx
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x3c], ecx
movaps xmm0, xmmword [edx]
xorps xmm0, xmmword [edi]
movaps xmmword [edx], xmm0
mov ecx, dword [esi + 0x24]
lea edi, [ecx + 1]
imul edi, ecx
and edi, 1
sete bl
cmp dword [esi + 4], 0xa
setl ah
or ah, bl
cmp ah, 1
je 0x403460
mov ecx, 0xa9b853e
mov ebx, 0xdbb59475
mov edx, dword [esi + 8]
mov dword [edx + 4], ebx
mov dword [edx], ecx
cmp dword [esi + 4], 0xa
mov edx, dword [esi + 8]
jl 0x403497
test edi, edi
jne 0x403554
jmp 0x403497
mov ecx, 0xa9b853e
mov edi, 0xdbb59475
mov dword [edx + 4], edi
mov dword [edx], ecx
mov ecx, 0xf59d27b5
mov edi, 0x7e7e527f
mov dword [edx + 0xc], edi
mov dword [edx + 8], ecx
jmp 0x4033eb
mov ebx, 0xa9b853e
mov ecx, 0xdbb59475
mov dword [edx + 4], ecx
mov dword [edx], ebx
mov ecx, 0xf59d27b5
mov ebx, 0x7e7e527f
mov dword [edx + 0xc], ebx
mov dword [edx + 8], ecx
test ah, ah
je 0x403554
xor ecx, ecx
lea ebx, [esi + 0x30]
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x30], ecx
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x34], ecx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x38], ecx
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x3c], ecx
movaps xmm0, xmmword [edx]
xorps xmm0, xmmword [ebx]
movaps xmmword [edx], xmm0
test al, al
je 0x4033ad
xorps xmm0, xmm0
mov ebx, dword [esi + 0x58]
movups xmmword [ebx + 4], xmm0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x14], 0
push dword [esi + 8]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
test eax, eax
js 0x403624
cmp eax, 0xf
mov edi, dword [esi + 0x10]
mov dword [esi + 4], eax
ja 0x403578
lea ecx, [ebx + 4]
mov dword [esi + 0x24], ecx
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x18], 0xf
push eax
push dword [esi + 8]
push ecx
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esi + 4]
add esp, 0xc
add eax, dword [esi + 0x24]
mov dword [esi + 0xe8], 3
jmp 0x4035f2
mov ecx, 0xa9b853e
mov ebx, 0xdbb59475
mov dword [edx + 4], ebx
mov dword [edx], ecx
mov ecx, 0xf59d27b5
mov ebx, 0x7e7e527f
mov dword [edx + 0xc], ebx
mov dword [edx + 8], ecx
jmp 0x403497
or eax, 0xf
cmp eax, 0x17
mov ecx, 0x16
cmovae ecx, eax
mov dword [esi + 0xe8], 3
cmp ecx, 0xfff
mov dword [esi + 0x24], ecx
jb 0x4035b8
lea eax, [ecx + 0x24]
mov byte [esi + 0x2a], 1
push eax
call fcn.0040b9d2
add esp, 4
mov edi, eax
add edi, 0x23
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x4035ca
lea eax, [ecx + 1]
mov byte [esi + 0x2a], 1
push eax
call fcn.0040b9d2
add esp, 4
mov edi, eax
mov eax, dword [esi + 8]
mov ebx, dword [esi + 0x58]
mov dword [ebx + 4], edi
mov edx, dword [esi + 4]
mov dword [ebx + 0x14], edx
mov ecx, dword [esi + 0x24]
mov dword [ebx + 0x18], ecx
push edx
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esi + 4]
add esp, 0xc
add eax, edi
mov edi, dword [esi + 0x10]
mov byte [eax], 0
mov dword [ebx], edi
mov byte [esi + 0x2a], 0
call fcn.00401ad0
add esp, 0x34
cmp dword [0x42c280], 0xa
mov ebx, dword [esi + 0x10]
mov edi, dword [esi + 0xc]
jl 0x403637
mov eax, dword [0x42c284]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x403673
jmp 0x403637
mov byte [esi + 0x2a], 1
mov dword [esi + 0xe8], 3
call fcn.004067b0
mov esp, edi
xor eax, eax
cmp dword [ebx + 0x10], 4
jne 0x403654
cmp dword [ebx + 0x14], 0x10
mov eax, ebx
jb 0x40364b
mov eax, dword [ebx]
cmp dword [eax], 0x656e6f4e
sete al
mov ecx, dword [0x42c284]
mov edx, dword [0x42c280]
cmp edx, 0xa
jl 0x403677
lea edi, [ecx + 1]
imul edi, ecx
and edi, 1
mov edi, dword [esi + 0xc]
je 0x403677
mov esp, edi
jmp 0x403637
test al, al
je 0x403796
nop
mov eax, dword [ebx + 0x14]
cmp eax, 0x10
jb 0x4036c3
mov ecx, dword [ebx]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x4036ad
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x403e1f
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.0040ba07
add esp, 8
mov ecx, dword [0x42c284]
mov edx, dword [0x42c280]
cmp edx, 0xa
jl 0x403779
lea eax, [ecx + 1]
imul eax, ecx
and eax, 1
je 0x403779
nop dword [eax + eax]
mov eax, dword [ebx + 0x14]
cmp eax, 0x10
jb 0x403717
mov ecx, dword [ebx]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x40370d
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x403e1f
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.0040ba07
add esp, 8
mov eax, dword [ebx + 0x14]
cmp eax, 0x10
jb 0x40374e
mov ecx, dword [ebx]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x403744
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x403e1f
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.0040ba07
add esp, 8
mov ecx, dword [0x42c284]
mov edx, dword [0x42c280]
lea eax, [ecx + 1]
imul eax, ecx
and eax, 1
cmp edx, 0xa
jl 0x403680
test eax, eax
jne 0x4036e0
jmp 0x403680
mov eax, dword [esi + 0xa0]
mov eax, dword [eax]
mov ecx, dword [esi + 0xe0]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esi + 0x24], esp
push eax
sub esp, 0x30
mov ebx, esp
mov eax, dword [0x42c298]
mov dword [esi + 8], eax
mov eax, dword [0x42c29c]
cmp eax, 0xa
jl 0x4037c3
mov edx, dword [esi + 8]
lea ecx, [edx + 1]
imul ecx, edx
and ecx, 1
jne 0x4038e0
mov edx, 0x3994ec2a
mov ecx, 0xba83cb37
mov dword [esi + 4], edx
mov dword [esi + 0x60], ecx
mov ecx, 0x9ab042af
mov edx, 0x7e1a2070
mov dword [esi + 0xc], ecx
xor edi, edi
lea ecx, [esi + 0x30]
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x64], edx
nop dword [eax + eax]
mov dword [esi + 0x2c], ebx
mov edi, dword [esi + 0x80]
mov ecx, dword [esi + 4]
mov dword [edi], ecx
mov ebx, dword [esi + 0x60]
mov dword [edi + 4], ebx
mov ecx, dword [esi + 0xc]
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x34], ecx
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x30], ecx
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x3c], ecx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x38], ecx
movaps xmm0, xmmword [edi]
mov ecx, dword [esi + 0x5c]
xorps xmm0, xmmword [ecx]
movaps xmmword [edi], xmm0
cmp dword [0x42c280], 0xa
jl 0x4038f2
mov ecx, dword [0x42c284]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x4038f2
cmp eax, 0xa
jl 0x40386a
mov ecx, dword [esi + 8]
lea eax, [ecx + 1]
imul eax, ecx
and eax, 1
jne 0x4038f0
mov dword [esi + 0x24], esp
xor eax, eax
lea ecx, [esi + 0x30]
mov edi, dword [esi + 0x80]
mov eax, dword [esi + 4]
mov dword [edi], eax
mov dword [edi + 4], ebx
mov eax, dword [esi + 0xc]
mov dword [edi + 8], eax
mov edx, dword [esi + 0x64]
mov dword [edi + 0xc], edx
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x38], eax
movaps xmm0, xmmword [edi]
xorps xmm0, xmmword [ecx]
movaps xmmword [edi], xmm0
push eax
sub esp, 0x30
mov ebx, esp
mov eax, dword [0x42c298]
mov dword [esi + 8], eax
mov eax, dword [0x42c29c]
cmp eax, 0xa
jl 0x4037f0
mov edi, dword [esi + 8]
lea ecx, [edi + 1]
imul ecx, edi
and ecx, 1
je 0x4037f0
nop dword [eax + eax]
jmp 0x4038e0
jmp 0x4038f0
mov eax, dword [esi + 0x2c]
lea ebx, [eax + 0x1c]
xorps xmm0, xmm0
movups xmmword [eax + 0x1c], xmm0
mov dword [eax + 0x30], 0
mov dword [eax + 0x2c], 0
mov edi, dword [esi + 0x80]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_wcslen
add esp, 4
mov dword [esi + 0xe8], 0
mov dword [esi + 8], ebx
mov ecx, ebx
push eax
push edi
call fcn.00406a20
cmp dword [0x42c280], 0xa
mov eax, dword [0x42c2a0]
mov ecx, dword [0x42c2a4]
jl 0x4039e2
mov edx, dword [0x42c284]
lea edi, [edx + 1]
imul edi, edx
and edi, 1
je 0x4039e2
lea edx, [eax + 1]
imul edx, eax
test dl, 1
sete dl
cmp ecx, 0xa
setl al
or al, dl
mov ecx, 0xa9b853e
mov edi, 0xd3b39475
mov dword [esi + 8], ecx
mov ecx, 0xe89b29b5
mov edx, 0x7e7f5677
mov dword [esi + 0x10], edx
mov dword [esi + 4], ecx
mov byte [esi + 0xc], al
cmp al, 1
mov edx, dword [esi + 0x18]
lea eax, [esi + 0x30]
mov ebx, dword [esi + 0x70]
jne 0x4039e0
xor ecx, ecx
mov dword [ebx + 4], edi
mov ecx, edi
mov edi, dword [esi + 8]
mov dword [ebx], edi
mov edi, ecx
mov ecx, dword [esi + 0x10]
mov dword [ebx + 0xc], ecx
mov ecx, dword [esi + 4]
mov dword [ebx + 8], ecx
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x34], ecx
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x30], ecx
mov dword [esi + 0x3c], edx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x38], ecx
movaps xmm0, xmmword [ebx]
xorps xmm0, xmmword [eax]
movaps xmmword [ebx], xmm0
cmp byte [esi + 0xc], 0
jne 0x4039a2
nop
jmp 0x4039e0
mov edx, 0xa9b853e
mov edi, 0xd3b39475
cmp ecx, 0xa
jl 0x403a02
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x403a02
nop dword [eax]
jmp 0x403a00
mov ebx, dword [esi + 0x70]
mov dword [ebx], edx
mov eax, 0xe89b29b5
mov dword [ebx + 4], edi
mov ecx, 0x7e7f5677
mov dword [ebx + 0xc], ecx
mov dword [ebx + 8], eax
xor eax, eax
lea ecx, [esi + 0x30]
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x38], eax
movaps xmm0, xmmword [ebx]
xorps xmm0, xmmword [ecx]
mov eax, dword [esi + 0x2c]
lea edi, [eax + 4]
movaps xmmword [ebx], xmm0
xorps xmm0, xmm0
movups xmmword [edi], xmm0
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
test eax, eax
js 0x4043cf
cmp eax, 0xf
mov ebx, dword [esi + 0x10]
mov dword [esi + 4], eax
ja 0x403a9a
mov ecx, dword [esi + 0x2c]
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x18], 0xf
push eax
push dword [esi + 0x70]
push edi
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esi + 4]
add esp, 0xc
add eax, edi
jmp 0x403b1d
or eax, 0xf
cmp eax, 0x17
mov ecx, 0x16
cmovae ecx, eax
cmp ecx, 0xfff
mov dword [esi + 0xc], ecx
jb 0x403ada
lea eax, [ecx + 0x24]
mov byte [esi + 0x2b], 1
mov dword [esi + 0xe8], 2
push eax
call fcn.0040b9d2
add esp, 4
mov edi, eax
add edi, 0x23
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x403af6
lea eax, [ecx + 1]
mov byte [esi + 0x2b], 1
mov dword [esi + 0xe8], 2
push eax
call fcn.0040b9d2
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x70]
mov ecx, dword [esi + 0x2c]
mov dword [ecx + 4], edi
mov ebx, dword [esi + 4]
mov dword [ecx + 0x14], ebx
mov edx, dword [esi + 0xc]
mov dword [ecx + 0x18], edx
push ebx
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
mov eax, ebx
add esp, 0xc
add eax, edi
mov ebx, dword [esi + 0x10]
mov byte [eax], 0
cmp dword [0x42c280], 0xa
jl 0x403b42
mov eax, dword [0x42c284]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x403b42
nop dword [eax]
jmp 0x403b40
mov eax, dword [esi + 0x2c]
mov dword [eax], ebx
mov byte [esi + 0x2b], 0
mov dword [esi + 0xe8], 2
call fcn.00401ad0
add esp, 0x34
cmp dword [0x42c280], 0xa
mov edx, dword [esi + 0x1c]
jl 0x403b82
mov eax, dword [0x42c284]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x403b82
nop dword [eax]
jmp 0x403b80
mov esp, dword [esi + 0x24]
cmp dword [0x42c2a8], 0xa
jl 0x403ba2
mov eax, dword [0x42c2ac]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x403cc0
mov edi, 0x5882a13f
mov eax, 0xbaf7ae35
mov dword [esi + 8], eax
xor eax, eax
lea ecx, [esi + 0x30]
mov dword [esi + 0xc], ecx
mov dword [esi + 4], edi
mov ebx, dword [esi + 0x9c]
mov dword [ebx], edi
mov eax, dword [esi + 8]
mov dword [ebx + 4], eax
mov ecx, dword [esi + 0x14]
mov dword [ebx + 8], ecx
mov edi, dword [esi + 0x18]
mov dword [ebx + 0xc], edi
mov dword [esi + 0x34], edx
mov eax, dword [esi + 0x20]
mov dword [esi + 0x30], eax
mov dword [esi + 0x3c], edi
mov dword [esi + 0x38], ecx
movaps xmm0, xmmword [ebx]
mov eax, dword [esi + 0xc]
xorps xmm0, xmmword [eax]
movaps xmmword [ebx], xmm0
mov ecx, dword [esi + 0x10]
push 0
push ebx
call fcn.004048b0
mov ecx, dword [0x42c284]
mov edx, dword [0x42c280]
cmp edx, 0xa
jl 0x403cd2
lea ebx, [ecx + 1]
imul ebx, ecx
and ebx, 1
je 0x403cd2
mov esp, dword [esi + 0x24]
cmp dword [0x42c2a8], 0xa
lea edx, [esi + 0x30]
jl 0x403c41
mov eax, dword [0x42c2ac]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x403cd0
xor eax, eax
mov ecx, edx
mov edx, dword [esi + 0x9c]
mov eax, dword [esi + 4]
mov dword [edx], eax
mov eax, dword [esi + 8]
mov dword [edx + 4], eax
mov edi, dword [esi + 0x14]
mov dword [edx + 8], edi
mov ebx, dword [esi + 0x18]
mov dword [edx + 0xc], ebx
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0x30], eax
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x38], edi
mov edi, dword [esi + 4]
movaps xmm0, xmmword [edx]
xorps xmm0, xmmword [ecx]
movaps xmmword [edx], xmm0
mov ecx, dword [esi + 0x10]
push 0
push edx
call fcn.004048b0
mov edx, dword [esi + 0x1c]
mov esp, dword [esi + 0x24]
cmp dword [0x42c2a8], 0xa
jl 0x403bba
mov eax, dword [0x42c2ac]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x403bba
nop word cs:[eax + eax]
jmp 0x403cc0
jmp 0x403cd0
cmp eax, 0xffffffff
je 0x403d33
cmp edx, 0xa
jl 0x4043c7
lea eax, [ecx + 1]
imul eax, ecx
and eax, 1
mov ebx, dword [esi + 0x10]
je 0x403680
jmp 0x403cf2
mov edx, dword [esi + 0x6c]
mov dword [edx], edi
mov dword [edx + 4], ebx
xor eax, eax
lea ecx, [esi + 0x30]
mov ebx, dword [esi + 0x14]
mov dword [edx + 8], ebx
mov edi, dword [esi + 0x18]
mov dword [edx + 0xc], edi
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0x30], eax
mov dword [esi + 0x3c], edi
mov dword [esi + 0x38], ebx
movaps xmm0, xmmword [edx]
xorps xmm0, xmmword [ecx]
movaps xmmword [edx], xmm0
mov ecx, dword [esi + 0x10]
push 0
push edx
call fcn.004048b0
mov eax, dword [0x42c2b0]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete cl
cmp dword [0x42c2b4], 0xa
setl al
or al, cl
mov byte [esi + 0xc], al
cmp al, 1
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x6c]
jne 0x403df4
mov edi, 0x61baae3f
mov ebx, 0xbaf7cb47
mov dword [ecx + 4], ebx
mov dword [ecx], edi
mov eax, dword [esi + 0x14]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
cmp byte [esi + 0xc], 0
je 0x403df4
mov dword [esi + 0xc], edi
xor eax, eax
mov edi, ecx
lea ecx, [esi + 0x30]
mov eax, dword [esi + 0x20]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], edx
movaps xmm0, xmmword [edi]
xorps xmm0, xmmword [ecx]
movaps xmmword [edi], xmm0
mov ecx, dword [esi + 0x10]
push 0
push edi
call fcn.004048b0
mov ecx, dword [0x42c284]
mov edx, dword [0x42c280]
cmp edx, 0xa
jl 0x403e25
lea edi, [ecx + 1]
imul edi, ecx
and edi, 1
je 0x403e25
cmp dword [0x42c2b4], 0xa
mov edi, dword [esi + 0xc]
jl 0x403cf4
mov eax, dword [0x42c2b0]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x403cf4
jmp 0x403e1d
mov ecx, 0x61baae3f
mov edx, 0xbaf7cb47
mov ebx, dword [esi + 0x6c]
mov dword [ebx + 4], edx
mov edx, dword [esi + 0x18]
mov ebx, dword [esi + 0x6c]
mov dword [ebx], ecx
mov ecx, dword [esi + 0x6c]
mov eax, dword [esi + 0x14]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
jmp 0x403d61
jmp 0x403e1d
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
cmp eax, 0xffffffff
jne 0x403cd7
mov eax, 0x4d87853f
mov ecx, 0x9a9baa32
mov edx, dword [esi + 0xa8]
mov dword [esi + 0x74], ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], eax
mov dword [edx], eax
mov eax, 0x9adf068e
mov ecx, 0x7e1a201e
mov dword [edx + 0xc], ecx
mov dword [edx + 8], eax
xor eax, eax
lea ecx, [esi + 0x30]
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x38], eax
movaps xmm0, xmmword [edx]
xorps xmm0, xmmword [ecx]
movaps xmmword [edx], xmm0
mov ecx, dword [esi + 0x10]
push 0
push edx
call fcn.004048b0
mov ecx, dword [0x42c284]
mov edx, dword [0x42c280]
cmp eax, 0xffffffff
jne 0x403cd7
cmp edx, 0xa
jl 0x403ed2
lea eax, [ecx + 1]
imul eax, ecx
and eax, 1
je 0x403ed2
cmp dword [0x42c2b8], 0xa
jl 0x403ffb
mov eax, dword [0x42c2bc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x403ffb
jmp 0x403ed0
mov dword [esi + 0x60], esp
push eax
sub esp, 0x30
mov dword [esi + 0x2c], esp
mov ebx, dword [0x42c2bc]
mov eax, dword [0x42c2b8]
cmp eax, 0xa
jl 0x403efb
lea ecx, [ebx + 1]
imul ecx, ebx
and ecx, 1
jne 0x403ff7
mov ecx, 0x399aec24
mov edx, 0xba92cb23
mov dword [esi + 0x24], edx
mov dword [esi + 0xc], ecx
mov ecx, 0x9adf42aa
mov edi, 0x7e1a201e
mov dword [esi + 0x5c], ecx
xor edx, edx
lea ecx, [esi + 0x30]
mov dword [esi + 0x64], ecx
mov edx, dword [esi + 0x7c]
mov ecx, dword [esi + 0xc]
mov dword [edx], ecx
mov ecx, dword [esi + 0x24]
mov dword [edx + 4], ecx
mov ecx, dword [esi + 0x5c]
mov dword [edx + 8], ecx
mov dword [edx + 0xc], edi
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x34], ecx
mov ecx, dword [esi + 0x20]
mov dword [esi + 0x30], ecx
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x3c], ecx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x38], ecx
movaps xmm0, xmmword [edx]
mov ecx, dword [esi + 0x64]
xorps xmm0, xmmword [ecx]
movaps xmmword [edx], xmm0
cmp dword [0x42c280], 0xa
jl 0x40405d
mov ecx, dword [0x42c284]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x40405d
cmp eax, 0xa
jl 0x403f8d
lea eax, [ebx + 1]
imul eax, ebx
and eax, 1
jne 0x403ff9
mov dword [esi + 0x60], esp
xor eax, eax
lea ecx, [esi + 0x30]
mov edx, dword [esi + 0x7c]
mov eax, dword [esi + 0xc]
mov dword [edx], eax
mov eax, dword [esi + 0x24]
mov dword [edx + 4], eax
mov eax, dword [esi + 0x5c]
mov dword [edx + 8], eax
mov dword [edx + 0xc], edi
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x38], eax
movaps xmm0, xmmword [edx]
xorps xmm0, xmmword [ecx]
movaps xmmword [edx], xmm0
push eax
sub esp, 0x30
mov dword [esi + 0x2c], esp
mov ebx, dword [0x42c2bc]
mov eax, dword [0x42c2b8]
cmp eax, 0xa
jl 0x403f20
lea ecx, [ebx + 1]
imul ecx, ebx
and ecx, 1
je 0x403f20
jmp 0x403ff7
jmp 0x403ff9
mov eax, 0x399aec24
mov ecx, 0xba92cb23
mov dword [esi + 4], ecx
mov dword [esi + 8], eax
mov eax, 0x9adf42aa
mov ecx, 0x7e1a201e
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], eax
xor ebx, ebx
lea eax, [esi + 0x30]
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0x18]
mov edi, dword [esi + 0x7c]
mov ebx, dword [esi + 4]
mov dword [edi + 4], ebx
mov ebx, dword [esi + 8]
mov dword [edi], ebx
mov ebx, dword [esi + 0xc]
mov dword [edi + 0xc], ebx
mov ebx, dword [esi + 0x10]
mov dword [edi + 8], ebx
mov ebx, dword [esi + 0x1c]
mov dword [esi + 0x34], ebx
mov ebx, dword [esi + 0x20]
mov dword [esi + 0x30], ebx
mov dword [esi + 0x3c], edx
mov dword [esi + 0x38], ecx
movaps xmm0, xmmword [edi]
xorps xmm0, xmmword [eax]
movaps xmmword [edi], xmm0
jmp 0x404029
mov eax, dword [esi + 0x2c]
lea ecx, [eax + 0x1c]
mov dword [esi + 0xe8], 0
mov dword [esi + 0xc], ecx
push dword [esi + 0x7c]
call fcn.00404870
cmp dword [0x42c280], 0xa
jl 0x404093
mov eax, dword [0x42c284]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x404093
jmp 0x404091
cmp dword [0x42c2c0], 0xa
jl 0x4040ae
mov eax, dword [0x42c2c4]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4040ae
jmp 0x4040ac
mov eax, 0xa9b853e
mov ecx, 0xd5949475
mov edx, dword [esi + 0xa4]
mov dword [edx + 4], ecx
mov dword [edx], eax
mov eax, 0xeeaa32ab
mov ecx, 0x769527b
mov dword [edx + 0xc], ecx
mov dword [edx + 8], eax
mov eax, 0x5c6a3d78
mov ecx, 0xa0c9bbe9
mov dword [edx + 0x14], ecx
mov dword [edx + 0x10], eax
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x88]
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x8c]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x84]
mov dword [edx + 0x18], eax
mov ecx, dword [esi + 0x68]
mov dword [edx + 0x1c], ecx
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
xor eax, eax
lea ecx, [esi + 0x30]
movaps xmm0, xmmword [edx]
xorps xmm0, xmmword [ecx]
movaps xmm1, xmmword [edx + 0x10]
movaps xmmword [edx], xmm0
xorps xmm1, xmmword [ecx + 0x10]
mov eax, dword [esi + 0x2c]
lea ecx, [eax + 4]
movaps xmmword [edx + 0x10], xmm1
mov byte [esi + 0x57], 1
mov dword [esi + 0xe8], 1
push edx
call fcn.00401300
cmp dword [0x42c280], 0xa
jl 0x404171
mov eax, dword [0x42c284]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x404171
jmp 0x40416f
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x2c]
mov dword [ecx], eax
mov byte [esi + 0x57], 0
call fcn.00401ad0
add esp, 0x34
cmp dword [0x42c280], 0xa
jl 0x4041a0
mov eax, dword [0x42c284]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4041a0
jmp 0x40419e
xor eax, eax
lea ebx, [esi + 0x30]
mov dword [esi + 0xc], ebx
mov ebx, dword [esi + 0x98]
mov esp, dword [esi + 0x60]
mov edi, dword [esi + 0x98]
mov eax, dword [esi + 8]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
mov dword [edi], eax
mov edx, dword [esi + 0x18]
mov dword [edi + 0xc], edx
mov ecx, dword [esi + 0x14]
mov dword [edi + 8], ecx
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0x30], eax
mov dword [esi + 0x3c], edx
mov dword [esi + 0x38], ecx
movaps xmm0, xmmword [edi]
mov eax, dword [esi + 0xc]
xorps xmm0, xmmword [eax]
movaps xmmword [edi], xmm0
mov ecx, dword [esi + 0x10]
push 0
push edi
call fcn.004048b0
mov ecx, dword [0x42c284]
mov edx, dword [0x42c280]
lea edi, [ecx + 1]
imul edi, ecx
and edi, 1
cmp edx, 0xa
jl 0x40425f
test edi, edi
je 0x40425f
mov esp, dword [esi + 0x60]
xor eax, eax
lea ecx, [esi + 0x30]
mov eax, dword [esi + 8]
mov dword [ebx + 4], eax
mov eax, dword [esi + 4]
mov dword [ebx], eax
mov edi, dword [esi + 0x18]
mov dword [ebx + 0xc], edi
mov edx, dword [esi + 0x14]
mov dword [ebx + 8], edx
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0x30], eax
mov dword [esi + 0x3c], edi
mov dword [esi + 0x38], edx
movaps xmm0, xmmword [ebx]
xorps xmm0, xmmword [ecx]
movaps xmmword [ebx], xmm0
mov ecx, dword [esi + 0x10]
push 0
push ebx
call fcn.004048b0
jmp 0x4041ae
mov byte [esi + 0x68], 1
cmp eax, 0xffffffff
je 0x40427b
cmp edx, 0xa
jl 0x4043b5
test edi, edi
je 0x4043b5
jmp 0x404279
cmp dword [0x42c2c8], 0xa
jl 0x404298
mov eax, dword [0x42c2cc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x4043b1
mov eax, 0x4d87853f
mov ecx, 0xf89baa32
mov dword [esi + 4], ecx
mov dword [esi + 8], eax
mov eax, 0x9adf3aa9
mov ebx, 0x7e1a201e
mov dword [esi + 0xc], eax
xor eax, eax
lea ecx, [esi + 0x30]
mov dword [esi + 0x24], ecx
mov edx, dword [esi + 0x90]
mov eax, dword [esi + 8]
mov dword [edx], eax
mov eax, dword [esi + 4]
mov dword [edx + 4], eax
mov eax, dword [esi + 0xc]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ebx
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x38], eax
movaps xmm0, xmmword [edx]
mov eax, dword [esi + 0x24]
xorps xmm0, xmmword [eax]
movaps xmmword [edx], xmm0
mov ecx, dword [esi + 0x10]
push 0
push edx
call fcn.004048b0
mov ecx, dword [0x42c284]
mov edx, dword [0x42c280]
lea edi, [ecx + 1]
imul edi, ecx
and edi, 1
cmp edx, 0xa
jl 0x4043e2
test edi, edi
je 0x4043e2
cmp dword [0x42c2c8], 0xa
jl 0x404345
mov eax, dword [0x42c2cc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x4043b3
xor eax, eax
lea ecx, [esi + 0x30]
mov edx, dword [esi + 0x90]
mov eax, dword [esi + 8]
mov dword [edx], eax
mov eax, dword [esi + 4]
mov dword [edx + 4], eax
mov eax, dword [esi + 0xc]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ebx
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x38], eax
movaps xmm0, xmmword [edx]
xorps xmm0, xmmword [ecx]
movaps xmmword [edx], xmm0
mov ecx, dword [esi + 0x10]
push 0
push edx
call fcn.004048b0
cmp dword [0x42c2c8], 0xa
jl 0x4042bd
mov eax, dword [0x42c2cc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4042bd
jmp 0x4043b1
jmp 0x4043b3
cmp byte [esi + 0x68], 0
jne 0x4043c7
mov eax, dword [esi + 0xa0]
mov dword [eax], 0
mov ebx, dword [esi + 0x10]
jmp 0x403680
mov byte [esi + 0x2b], 1
mov dword [esi + 0xe8], 2
call fcn.004067b0
cmp eax, 0xffffffff
jne 0x404268
cmp dword [0x42c2d0], 0xa
jl 0x404408
mov eax, dword [0x42c2d4]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x404511
mov eax, 0xf2bc238b
mov ebx, 0x7e7f4e77
mov dword [esi + 8], eax
xor eax, eax
lea ecx, [esi + 0x30]
mov dword [esi + 4], ecx
mov edx, dword [esi + 0x94]
mov eax, dword [esi + 0x78]
mov dword [edx], eax
mov eax, dword [esi + 0x74]
mov dword [edx + 4], eax
mov eax, dword [esi + 8]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ebx
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x38], eax
movaps xmm0, xmmword [edx]
mov eax, dword [esi + 4]
xorps xmm0, xmmword [eax]
movaps xmmword [edx], xmm0
mov ecx, dword [esi + 0x10]
push 0
push edx
call fcn.004048b0
mov ecx, dword [0x42c284]
mov edx, dword [0x42c280]
lea edi, [ecx + 1]
imul edi, ecx
and edi, 1
cmp edx, 0xa
jl 0x404515
test edi, edi
je 0x404515
cmp dword [0x42c2d0], 0xa
jl 0x4044a5
mov eax, dword [0x42c2d4]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x404513
xor eax, eax
lea ecx, [esi + 0x30]
mov edx, dword [esi + 0x94]
mov eax, dword [esi + 0x78]
mov dword [edx], eax
mov eax, dword [esi + 0x74]
mov dword [edx + 4], eax
mov eax, dword [esi + 8]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ebx
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x38], eax
movaps xmm0, xmmword [edx]
xorps xmm0, xmmword [ecx]
movaps xmmword [edx], xmm0
mov ecx, dword [esi + 0x10]
push 0
push edx
call fcn.004048b0
cmp dword [0x42c2d0], 0xa
jl 0x40441d
mov eax, dword [0x42c2d4]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x40441d
jmp 0x404511
jmp 0x404513
cmp eax, 0xffffffff
setne byte [esi + 0x68]
jmp 0x404268