Function at 0x402c90
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xc0
mov esi, esp
mov dword [esi + 0xa8], ebp
mov dword [esi + 0xac], esp
mov dword [esi + 0xb8], 0xffffffff
lea eax, [esi + 0xb0]
mov dword [esi + 0xb4], 0x4068a0
mov ecx, dword fs:[0]
mov dword [esi + 0xb0], ecx
mov dword fs:[0], eax
cmp dword [0x42f280], 0xa
jl 0x402d02
mov eax, dword [0x42f284]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402d02
nop word cs:[eax + eax]
jmp 0x402d00
push eax
mov edi, esp
sub esp, 0x18
mov edx, esp
sub esp, 0x20
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x18], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x2c], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x5c], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x64], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x68], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x94], eax
mov esp, eax
push eax
sub esp, 0xc
mov ebx, esp
and ebx, 0xfffffff0
mov esp, ebx
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x70], eax
mov esp, eax
push eax
sub esp, 0x1c
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x9c], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x90], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x84], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x80], eax
mov esp, eax
mov dword [esi + 0x24], esp
mov dword [edi], 1
xorps xmm0, xmm0
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0xf
push eax
sub esp, 0x30
mov dword [esi + 8], esp
cmp dword [0x42f288], 0xa
jl 0x402e02
mov eax, dword [0x42f28c]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x402e02
nop word [eax + eax]
jmp 0x402e00
mov dword [esi + 0x78], ebx
mov dword [esi + 0x7c], edi
mov dword [esi + 0x20], edx
mov eax, 0x30724b44
mov ecx, 0x4820257a
mov edx, 0x5a63519d
mov ebx, 0x2115386f
mov edi, dword [esi + 0x18]
mov dword [edi + 4], ecx
mov ecx, 0x3f132f2c
mov dword [edi], eax
mov eax, 0xbf25da43
mov dword [edi + 0xc], ebx
mov ebx, 0x62bbcbd6
mov dword [edi + 8], edx
mov edx, 0x7162e957
mov dword [esi + 0x74], ebx
mov dword [esi + 0x8c], edx
mov dword [edi + 0x14], eax
mov dword [edi + 0x10], ecx
mov eax, 0x30174b17
mov ecx, 0x48492508
mov dword [esi + 0x14], ecx
mov dword [esi + 0x10], eax
mov ecx, 0x5a0f51fc
mov eax, 0x21603821
mov dword [esi + 0x1c], eax
mov dword [esi + 0xc], ecx
mov ecx, 0x3f712f41
mov eax, 0xbf57da26
mov dword [esi + 0x88], ecx
lea ecx, [esi + 0x30]
mov dword [esi + 4], 0
mov ebx, dword [esi + 4]
mov dword [edi + 0x1c], edx
mov edx, dword [esi + 0x74]
mov dword [edi + 0x18], edx
mov edx, dword [esi + 0x14]
mov dword [esi + 0x34], edx
mov edx, dword [esi + 0x10]
mov dword [esi + 0x30], edx
mov edx, dword [esi + 0x1c]
mov dword [esi + 0x3c], edx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x38], edx
mov dword [esi + 0x98], eax
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x88]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x8c]
mov dword [esi + 0x4c], eax
mov eax, dword [esi + 0x74]
mov dword [esi + 0x48], eax
movaps xmm1, xmmword [edi]
movaps xmm2, xmmword [edi + 0x10]
xorps xmm1, xmmword [ecx]
movaps xmmword [edi], xmm1
xorps xmm2, xmmword [ecx + 0x10]
movaps xmmword [edi + 0x10], xmm2
mov eax, dword [esi + 8]
lea ebx, [eax + 0x1c]
movups xmmword [ebx], xmm0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x10], 0
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_wcslen
add esp, 4
mov dword [esi + 0xb8], 0
mov dword [esi + 0x6c], ebx
mov ecx, ebx
push eax
push edi
call fcn.004063c0
mov eax, dword [0x42f284]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete cl
cmp dword [0x42f280], 0xa
setl al
or al, cl
mov ecx, dword [0x42f290]
mov dword [esi + 0x58], ecx
mov ecx, dword [0x42f294]
mov dword [esi + 0x18], ecx
mov byte [esi + 4], al
cmp al, 1
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x2c]
je 0x402fb9
cmp dword [esi + 0x18], 0xa
jl 0x402f72
mov eax, dword [esi + 0x58]
lea edx, [eax + 1]
imul edx, eax
and edx, 1
je 0x402f72
nop word [eax + eax]
jmp 0x402f70
mov edi, 0x3792240
mov edx, 0x290b7a3a
mov dword [ecx + 4], edx
mov edx, 0x354d348f
mov dword [ecx], edi
mov edi, 0x21044a40
mov dword [ecx + 0xc], edi
mov dword [ecx + 8], edx
xor edx, edx
lea edi, [esi + 0x30]
mov eax, dword [esi + 0x14]
mov dword [esi + 0x34], eax
mov ebx, dword [esi + 0x10]
mov dword [esi + 0x30], ebx
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x38], eax
movaps xmm0, xmmword [ecx]
xorps xmm0, xmmword [edi]
movaps xmmword [ecx], xmm0
jmp 0x403021
lea edi, [eax + 4]
cmp dword [esi + 0x18], 0xa
jl 0x402fd4
mov eax, dword [esi + 0x58]
lea ebx, [eax + 1]
imul ebx, eax
and ebx, 1
jne 0x403070
mov ebx, 0x3792240
mov edx, 0x290b7a3a
mov dword [ecx + 4], edx
mov edx, 0x354d348f
mov dword [ecx], ebx
mov ebx, 0x21044a40
mov dword [ecx + 0xc], ebx
mov dword [ecx + 8], edx
xor edx, edx
lea ebx, [esi + 0x30]
mov eax, dword [esi + 0x14]
mov dword [esi + 0x34], eax
mov edx, dword [esi + 0x10]
mov dword [esi + 0x30], edx
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x38], eax
movaps xmm0, xmmword [ecx]
xorps xmm0, xmmword [ebx]
mov ebx, edx
movaps xmmword [ecx], xmm0
cmp byte [esi + 4], 0
jne 0x403072
mov edi, 0x3792240
mov edx, 0x290b7a3a
mov dword [ecx + 4], edx
mov edx, 0x354d348f
mov dword [ecx], edi
mov edi, 0x21044a40
mov dword [ecx + 0xc], edi
mov dword [ecx + 8], edx
xor edx, edx
lea edi, [esi + 0x30]
mov edx, dword [esi + 0x14]
mov dword [esi + 0x34], edx
mov dword [esi + 0x30], ebx
mov edx, dword [esi + 0x1c]
mov dword [esi + 0x3c], edx
mov dword [esi + 0x38], eax
movaps xmm0, xmmword [ecx]
xorps xmm0, xmmword [edi]
movaps xmmword [ecx], xmm0
mov eax, dword [esi + 8]
jmp 0x402fb9
jmp 0x403070
xorps xmm0, xmm0
movups xmmword [edi], xmm0
mov dword [edi + 0x14], 0
mov dword [edi + 0x10], 0
push ecx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
test eax, eax
js 0x40343d
cmp eax, 0xf
mov dword [esi + 0x18], eax
ja 0x4030cd
mov ebx, dword [esi + 8]
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x18], 0xf
push eax
push dword [esi + 0x2c]
push edi
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x18]
add esp, 0xc
add eax, edi
mov dword [esi + 0xb8], 3
jmp 0x403147
or eax, 0xf
cmp eax, 0x17
mov ecx, 0x16
cmovae ecx, eax
mov dword [esi + 0xb8], 3
cmp ecx, 0xfff
mov dword [esi + 4], ecx
jb 0x40310d
lea eax, [ecx + 0x24]
mov byte [esi + 0x2b], 1
push eax
call fcn.0040ec72
add esp, 4
mov edi, eax
add edi, 0x23
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x40311f
lea eax, [ecx + 1]
mov byte [esi + 0x2b], 1
push eax
call fcn.0040ec72
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x2c]
mov ebx, dword [esi + 8]
mov dword [ebx + 4], edi
mov edx, dword [esi + 0x18]
mov dword [ebx + 0x14], edx
mov ecx, dword [esi + 4]
mov dword [ebx + 0x18], ecx
push edx
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esi + 0x18]
add esp, 0xc
add eax, edi
mov ecx, dword [esi + 0x20]
mov byte [eax], 0
mov dword [ebx], ecx
mov byte [esi + 0x2b], 0
call fcn.004017f0
add esp, 0x34
cmp dword [0x42f280], 0xa
jl 0x403182
mov eax, dword [0x42f284]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x403182
nop word cs:[eax + eax]
jmp 0x403180
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
nop dword [eax + eax]
mov esp, eax
cmp dword [ebx + 0x10], 4
jne 0x4031b0
cmp dword [ebx + 0x14], 0x10
mov eax, ebx
jb 0x4031a2
mov eax, dword [ebx]
cmp dword [eax], 0x656e6f4e
sete al
jmp 0x4031b2
xor eax, eax
mov edi, dword [0x42f284]
mov ecx, dword [0x42f280]
lea edx, [edi + 1]
imul edx, edi
and edx, 1
cmp ecx, 0xa
jl 0x4031d7
test edx, edx
je 0x4031d7
mov eax, dword [esi + 0x24]
mov esp, eax
jmp 0x403190
test al, al
je 0x403286
cmp ecx, 0xa
jl 0x4031fc
test edx, edx
je 0x4031fc
nop dword [eax + eax]
jmp 0x4031f0
push edi
push ecx
call fcn.0040eca7
add esp, 8
mov eax, dword [ebx + 0x14]
cmp eax, 0x10
jb 0x403233
mov ecx, dword [ebx]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x403229
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x403437
add eax, 0x24
mov edi, eax
mov ecx, edx
push edi
push ecx
call fcn.0040eca7
add esp, 8
cmp dword [0x42f280], 0xa
jl 0x4033a2
mov eax, dword [0x42f284]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x4033a2
mov eax, dword [ebx + 0x14]
cmp eax, 0x10
jb 0x4031fc
mov ecx, dword [ebx]
lea edi, [eax + 1]
cmp edi, 0x1000
jb 0x4031f2
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x403437
add eax, 0x24
mov edi, eax
mov ecx, edx
jmp 0x4031f2
mov dword [esi + 4], esp
push eax
sub esp, 0x30
mov ecx, esp
mov eax, 0x30764b54
mov edx, 0x483d2578
mov dword [esi + 0x18], edx
mov dword [esi + 8], eax
cmp dword [0x42f298], 0xa
mov ebx, dword [esi + 0x10]
jl 0x4032c0
mov edx, dword [0x42f29c]
lea edi, [edx + 1]
imul edi, edx
and edi, 1
jne 0x4033a0
mov edi, 0x5a605195
mov eax, 0x2160384f
mov dword [esi + 0x58], eax
xor edx, edx
lea eax, [esi + 0x30]
mov dword [esi + 0x24], eax
mov dword [esi + 0x6c], edi
mov dword [esi + 0x2c], ecx
mov edx, dword [esi + 0x5c]
mov eax, dword [esi + 8]
mov dword [edx], eax
mov eax, dword [esi + 0x18]
mov dword [edx + 4], eax
mov dword [edx + 8], edi
mov edi, dword [esi + 0x58]
mov dword [edx + 0xc], edi
mov eax, dword [esi + 0x14]
mov dword [esi + 0x34], eax
mov dword [esi + 0x30], ebx
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x3c], ecx
mov eax, dword [esi + 0xc]
mov dword [esi + 0x38], eax
movaps xmm0, xmmword [edx]
mov eax, dword [esi + 0x24]
xorps xmm0, xmmword [eax]
movaps xmmword [edx], xmm0
cmp dword [0x42f280], 0xa
jl 0x4033bc
mov ebx, dword [0x42f284]
lea eax, [ebx + 1]
imul eax, ebx
and eax, 1
je 0x4033bc
mov dword [esi + 4], esp
lea eax, [esi + 0x30]
xor ebx, ebx
mov edx, dword [esi + 0x5c]
mov ebx, dword [esi + 8]
mov dword [edx], ebx
mov ebx, dword [esi + 0x18]
mov dword [edx + 4], ebx
mov ebx, edi
mov edi, dword [esi + 0x6c]
mov dword [edx + 8], edi
mov dword [edx + 0xc], ebx
mov ebx, dword [esi + 0x14]
mov dword [esi + 0x34], ebx
mov ebx, dword [esi + 0x10]
mov dword [esi + 0x30], ebx
mov dword [esi + 0x3c], ecx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x38], ecx
movaps xmm0, xmmword [edx]
xorps xmm0, xmmword [eax]
movaps xmmword [edx], xmm0
push eax
sub esp, 0x30
mov ecx, esp
cmp dword [0x42f298], 0xa
jl 0x4032d8
mov eax, dword [0x42f29c]
lea ebx, [eax + 1]
imul ebx, eax
and ebx, 1
mov ebx, dword [esi + 0x10]
je 0x4032d8
nop
jmp 0x4033a0
mov eax, dword [esi + 0x7c]
mov eax, dword [eax]
mov ecx, dword [esi + 0xb0]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
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 + 0x5c]
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_wcslen
add esp, 4
mov dword [esi + 0xb8], 0
mov dword [esi + 0x24], ebx
mov ecx, ebx
push eax
push edi
call fcn.004063c0
mov eax, dword [0x42f284]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete cl
cmp dword [0x42f280], 0xa
setl al
or al, cl
mov byte [esi + 0x18], al
mov eax, dword [0x42f2a0]
mov dword [esi + 8], eax
mov ecx, dword [0x42f2a4]
jne 0x4034a5
mov eax, dword [esi + 8]
lea edi, [eax + 1]
imul edi, eax
and edi, 1
jmp 0x403450
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov byte [esi + 0x2b], 1
mov dword [esi + 0xb8], 3
call fcn.00406150
cmp ecx, 0xa
jl 0x40345d
test edi, edi
jne 0x403560
mov edi, 0x3792240
mov eax, 0x210d7a3a
mov edx, dword [esi + 0x64]
mov dword [edx + 4], eax
mov eax, 0x284b3a8f
mov dword [edx], edi
mov edi, 0x21054e48
mov dword [edx + 0xc], edi
mov dword [edx + 8], eax
xor eax, eax
lea edi, [esi + 0x30]
mov eax, dword [esi + 0x14]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x38], eax
movaps xmm0, xmmword [edx]
xorps xmm0, xmmword [edi]
movaps xmmword [edx], xmm0
mov eax, dword [esi + 8]
lea edi, [eax + 1]
imul edi, eax
and edi, 1
cmp ecx, 0xa
jl 0x4034be
test edi, edi
jne 0x403570
mov ebx, 0x3792240
mov eax, 0x210d7a3a
mov edx, dword [esi + 0x64]
mov dword [edx + 4], eax
mov eax, 0x284b3a8f
mov dword [edx], ebx
mov ebx, 0x21054e48
mov dword [edx + 0xc], ebx
mov dword [edx + 8], eax
xor eax, eax
lea ebx, [esi + 0x30]
mov eax, dword [esi + 0x14]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x38], eax
movaps xmm0, xmmword [edx]
xorps xmm0, xmmword [ebx]
movaps xmmword [edx], xmm0
cmp byte [esi + 0x18], 0
je 0x403450
mov eax, dword [esi + 0x2c]
lea ecx, [eax + 4]
mov byte [esi + 0x62], 1
mov dword [esi + 0xb8], 2
push dword [esi + 0x64]
call fcn.00401300
cmp dword [0x42f280], 0xa
jl 0x403572
mov eax, dword [0x42f284]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x403572
nop word cs:[eax + eax]
jmp 0x403550
jmp 0x403560
jmp 0x403570
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x2c]
mov dword [ecx], eax
mov byte [esi + 0x62], 0
call fcn.004017f0
add esp, 0x34
cmp dword [0x42f280], 0xa
mov ebx, dword [esi + 0x20]
jl 0x4035a8
mov eax, dword [0x42f284]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x40363f
jmp 0x4035a8
mov esp, dword [esi + 4]
cmp dword [0x42f2a8], 0xa
jl 0x4035c8
mov eax, dword [0x42f2ac]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x4036c0
mov edi, 0x51600641
mov eax, 0x4849407a
xor edx, edx
lea ecx, [esi + 0x30]
mov edx, dword [esi + 0x68]
mov dword [esi + 0x18], eax
mov dword [edx + 4], eax
mov dword [esi + 8], edi
mov dword [edx], edi
mov eax, dword [esi + 0xc]
mov dword [edx + 8], eax
mov edi, dword [esi + 0x1c]
mov dword [edx + 0xc], edi
mov eax, dword [esi + 0x14]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x30], eax
mov dword [esi + 0x3c], edi
mov eax, dword [esi + 0xc]
mov dword [esi + 0x38], eax
movaps xmm0, xmmword [edx]
xorps xmm0, xmmword [ecx]
movaps xmmword [edx], xmm0
mov ecx, ebx
push 0
push edx
call fcn.00404360
mov edi, dword [0x42f284]
mov ecx, dword [0x42f280]
lea edx, [edi + 1]
imul edx, edi
and edx, 1
cmp ecx, 0xa
jl 0x4036c2
test edx, edx
je 0x4036c2
mov esp, dword [esi + 4]
cmp dword [0x42f2a8], 0xa
jl 0x40365b
mov eax, dword [0x42f2ac]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x4036b0
mov eax, 0x51600641
mov ecx, 0x4849407a
mov edx, dword [esi + 0x68]
mov dword [edx + 4], ecx
mov dword [edx], eax
xor eax, eax
lea ecx, [esi + 0x30]
mov eax, dword [esi + 0xc]
mov dword [edx + 8], eax
mov edi, dword [esi + 0x1c]
mov dword [edx + 0xc], edi
mov eax, dword [esi + 0x14]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x30], eax
mov dword [esi + 0x3c], edi
mov eax, dword [esi + 0xc]
mov dword [esi + 0x38], eax
movaps xmm0, xmmword [edx]
xorps xmm0, xmmword [ecx]
movaps xmmword [edx], xmm0
mov ecx, ebx
push 0
push edx
call fcn.00404360
jmp 0x4035a8
jmp 0x4036b0
jmp 0x4036c0
mov byte [esi + 0x5c], 1
cmp eax, 0xffffffff
je 0x4036e2
cmp ecx, 0xa
jl 0x403814
test edx, edx
je 0x403814
nop dword [eax]
jmp 0x4036e0
cmp dword [0x42f2b0], 0xa
jl 0x4036ff
mov eax, dword [0x42f2b4]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x403810
mov eax, 0x68580941
mov ecx, 0x48492508
mov dword [esi + 0x24], ecx
mov dword [esi + 4], eax
xor eax, eax
lea ecx, [esi + 0x30]
mov dword [esi + 0x58], ecx
mov ebx, dword [esi + 0x94]
mov edi, dword [esi + 0x94]
mov eax, dword [esi + 4]
mov dword [edi], eax
mov eax, dword [esi + 0x24]
mov dword [edi + 4], eax
mov ecx, dword [esi + 0xc]
mov dword [edi + 8], ecx
mov edx, dword [esi + 0x1c]
mov dword [edi + 0xc], edx
mov eax, dword [esi + 0x14]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x30], eax
mov dword [esi + 0x3c], edx
mov dword [esi + 0x38], ecx
movaps xmm0, xmmword [edi]
mov eax, dword [esi + 0x58]
xorps xmm0, xmmword [eax]
movaps xmmword [edi], xmm0
mov ecx, dword [esi + 0x20]
push 0
push edi
call fcn.00404360
mov edi, dword [0x42f284]
mov ecx, dword [0x42f280]
lea edx, [edi + 1]
imul edx, edi
and edx, 1
cmp ecx, 0xa
jl 0x403950
test edx, edx
je 0x403950
cmp dword [0x42f2b0], 0xa
lea edx, [esi + 0x30]
jl 0x4037a5
mov eax, dword [0x42f2b4]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x403812
xor eax, eax
mov ecx, edx
mov eax, dword [esi + 4]
mov dword [ebx], eax
mov eax, dword [esi + 0x24]
mov dword [ebx + 4], eax
mov edx, dword [esi + 0xc]
mov dword [ebx + 8], edx
mov edi, dword [esi + 0x1c]
mov dword [ebx + 0xc], edi
mov eax, dword [esi + 0x14]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x10]
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 + 0x20]
push 0
push ebx
call fcn.00404360
cmp dword [0x42f2b0], 0xa
jl 0x40371d
mov eax, dword [0x42f2b4]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x40371d
nop word [eax + eax]
jmp 0x403810
jmp 0x403812
cmp byte [esi + 0x5c], 0
jne 0x4031df
mov dword [esi + 0x64], esp
push eax
sub esp, 0x30
mov dword [esi + 0x2c], esp
mov ebx, dword [0x42f2b8]
mov eax, dword [0x42f2bc]
cmp eax, 0xa
mov edx, dword [esi + 0xc]
jl 0x40384a
lea ecx, [ebx + 1]
imul ecx, ebx
and ecx, 1
jne 0x40394c
mov ecx, 0x30784b5a
mov edi, 0x482c256c
mov dword [esi + 0x24], edi
mov dword [esi + 4], ecx
mov ecx, 0x5a0f5190
mov edi, 0x21603821
mov dword [esi + 0x5c], edi
mov dword [esi + 0x58], ecx
xor edi, edi
lea ecx, [esi + 0x30]
mov dword [esi + 0x68], ecx
mov edi, dword [esi + 0x70]
mov ecx, dword [esi + 4]
mov dword [edi], ecx
mov ecx, dword [esi + 0x24]
mov dword [edi + 4], ecx
mov ecx, dword [esi + 0x58]
mov dword [edi + 8], ecx
mov ecx, dword [esi + 0x5c]
mov dword [edi + 0xc], ecx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x34], ecx
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x30], ecx
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], edx
movaps xmm0, xmmword [edi]
mov ecx, dword [esi + 0x68]
xorps xmm0, xmmword [ecx]
movaps xmmword [edi], xmm0
cmp dword [0x42f280], 0xa
jl 0x403aac
mov ecx, dword [0x42f284]
lea edx, [ecx + 1]
imul edx, ecx
and edx, 1
je 0x403aac
cmp eax, 0xa
mov edx, dword [esi + 0xc]
jl 0x4038e2
lea eax, [ebx + 1]
imul eax, ebx
and eax, 1
jne 0x40394e
mov dword [esi + 0x64], esp
lea eax, [esi + 0x30]
xor ecx, ecx
mov edi, dword [esi + 0x70]
mov ecx, dword [esi + 4]
mov dword [edi], ecx
mov ecx, dword [esi + 0x24]
mov dword [edi + 4], ecx
mov ecx, dword [esi + 0x58]
mov dword [edi + 8], ecx
mov ecx, dword [esi + 0x5c]
mov dword [edi + 0xc], ecx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x34], ecx
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x30], ecx
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], edx
movaps xmm0, xmmword [edi]
xorps xmm0, xmmword [eax]
movaps xmmword [edi], xmm0
push eax
sub esp, 0x30
mov dword [esi + 0x2c], esp
mov ebx, dword [0x42f2b8]
mov eax, dword [0x42f2bc]
cmp eax, 0xa
jl 0x403872
lea ecx, [ebx + 1]
imul ecx, ebx
and ecx, 1
je 0x403872
jmp 0x40394c
jmp 0x40394e
cmp eax, 0xffffffff
mov ebx, dword [esi + 0x20]
jne 0x4036cb
jmp 0x4039a9
mov edx, dword [esi + 0x78]
mov eax, dword [esi + 4]
mov dword [edx], eax
mov eax, dword [esi + 0x5c]
mov dword [edx + 4], eax
mov eax, dword [esi + 0x24]
mov dword [edx + 8], eax
mov eax, dword [esi + 0x58]
mov dword [edx + 0xc], eax
lea eax, [esi + 0x30]
xor ecx, ecx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x34], ecx
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x30], ecx
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x3c], ecx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x38], ecx
movaps xmm0, xmmword [edx]
xorps xmm0, xmmword [eax]
movaps xmmword [edx], xmm0
mov ecx, dword [esi + 0x20]
push 0
push edx
call fcn.00404360
mov eax, dword [0x42f2c0]
lea ecx, [eax + 1]
imul ecx, eax
test cl, 1
sete cl
cmp dword [0x42f2c4], 0xa
setl al
or al, cl
cmp al, 1
mov edi, dword [esi + 0x78]
mov byte [esi + 4], al
jne 0x403a86
mov ecx, 0x44652241
mov edx, 0x6825447d
mov dword [edi + 4], edx
mov dword [edi], ecx
mov eax, 0x5a0f15b4
mov ebx, 0x21603821
mov dword [esi + 0x58], ebx
mov dword [edi + 0xc], ebx
mov dword [esi + 0x24], eax
mov dword [edi + 8], eax
movzx eax, byte [esi + 4]
test al, al
je 0x403a86
mov dword [esi + 0x5c], edx
mov dword [esi + 4], ecx
lea eax, [esi + 0x30]
xor ecx, ecx
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x30], ecx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x34], ecx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x38], ecx
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x3c], ecx
movaps xmm0, xmmword [edi]
xorps xmm0, xmmword [eax]
movaps xmmword [edi], xmm0
mov ecx, dword [esi + 0x20]
push 0
push edi
call fcn.00404360
mov edi, eax
mov eax, dword [0x42f284]
mov ecx, dword [0x42f280]
lea edx, [eax + 1]
imul edx, eax
and edx, 1
cmp ecx, 0xa
jl 0x403afd
test edx, edx
je 0x403afd
cmp dword [0x42f2c4], 0xa
jl 0x40395e
mov eax, dword [0x42f2c0]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x40395e
jmp 0x403aaa
mov ecx, 0x44652241
mov edx, 0x6825447d
mov dword [edi + 4], edx
mov dword [edi], ecx
mov ecx, 0x5a0f15b4
mov edx, 0x21603821
mov dword [edi + 0xc], edx
mov dword [edi + 8], ecx
jmp 0x4039d4
jmp 0x403aaa
mov eax, dword [esi + 0x2c]
lea ecx, [eax + 0x1c]
mov dword [esi + 0xb8], 0
mov dword [esi + 4], ecx
push dword [esi + 0x70]
call fcn.00404320
cmp dword [0x42f280], 0xa
jl 0x403ae2
mov eax, dword [0x42f284]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x403ae2
jmp 0x403ae0
cmp dword [0x42f2c8], 0xa
jl 0x403b0c
mov eax, dword [0x42f2cc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x403b0c
jmp 0x403afb
cmp edi, 0xffffffff
setne byte [esi + 0x5c]
mov ebx, dword [esi + 0x20]
jmp 0x4036cb
mov eax, 0x3792240
mov ecx, 0x272a7a3a
mov edx, dword [esi + 0x9c]
mov dword [edx + 4], ecx
mov dword [edx], eax
mov eax, 0x2e7a2191
mov ecx, 0x58134a44
mov dword [edx + 0xc], ecx
mov dword [edx + 8], eax
mov eax, 0x52145b32
mov ecx, 0xbf57da26
mov dword [edx + 0x14], ecx
mov dword [edx + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x98]
mov dword [esi + 0x44], eax
mov eax, dword [esi + 0x88]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x74]
mov dword [edx + 0x18], eax
mov ecx, dword [esi + 0x8c]
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 + 0x63], 1
mov dword [esi + 0xb8], 1
push edx
call fcn.00401300
cmp dword [0x42f280], 0xa
jl 0x403bcf
mov eax, dword [0x42f284]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x403bcf
jmp 0x403bcd
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x2c]
mov dword [ecx], eax
mov byte [esi + 0x63], 0
call fcn.004017f0
add esp, 0x34
cmp dword [0x42f280], 0xa
jl 0x403bfe
mov eax, dword [0x42f284]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x403bfe
jmp 0x403bfc
mov esp, dword [esi + 0x64]
cmp dword [0x42f2d0], 0xa
jl 0x403c1e
mov eax, dword [0x42f2d4]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x403d1a
xor eax, eax
lea edi, [esi + 0x30]
mov dword [esi + 4], edi
mov edi, dword [esi + 0x90]
mov ebx, dword [esi + 0x90]
mov eax, dword [esi + 8]
mov dword [ebx], eax
mov eax, dword [esi + 0x18]
mov dword [ebx + 4], eax
mov ecx, dword [esi + 0xc]
mov dword [ebx + 8], ecx
mov edx, dword [esi + 0x1c]
mov dword [ebx + 0xc], edx
mov eax, dword [esi + 0x14]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x30], eax
mov dword [esi + 0x3c], edx
mov dword [esi + 0x38], ecx
movaps xmm0, xmmword [ebx]
mov eax, dword [esi + 4]
xorps xmm0, xmmword [eax]
movaps xmmword [ebx], xmm0
mov ecx, dword [esi + 0x20]
push 0
push ebx
call fcn.00404360
mov ebx, dword [0x42f284]
mov ecx, dword [0x42f280]
lea edx, [ebx + 1]
imul edx, ebx
and edx, 1
cmp ecx, 0xa
jl 0x403d1e
test edx, edx
je 0x403d1e
mov esp, dword [esi + 0x64]
cmp dword [0x42f2d0], 0xa
jl 0x403cb4
mov eax, dword [0x42f2d4]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x403d1c
lea eax, [esi + 0x30]
xor ecx, ecx
mov ecx, dword [esi + 8]
mov dword [edi], ecx
mov ecx, dword [esi + 0x18]
mov dword [edi + 4], ecx
mov edx, dword [esi + 0xc]
mov dword [edi + 8], edx
mov ebx, dword [esi + 0x1c]
mov dword [edi + 0xc], ebx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x34], ecx
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x30], ecx
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x38], edx
movaps xmm0, xmmword [edi]
xorps xmm0, xmmword [eax]
movaps xmmword [edi], xmm0
mov ecx, dword [esi + 0x20]
push 0
push edi
call fcn.00404360
mov esp, dword [esi + 0x64]
cmp dword [0x42f2d0], 0xa
jl 0x403c2c
mov eax, dword [0x42f2d4]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x403c2c
jmp 0x403d1a
jmp 0x403d1c
mov byte [esi + 0x58], 1
cmp eax, 0xffffffff
je 0x403d3a
cmp ecx, 0xa
jl 0x403e74
test edx, edx
je 0x403e74
jmp 0x403d38
cmp dword [0x42f2d8], 0xa
jl 0x403d57
mov eax, dword [0x42f2dc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x403e70
mov eax, 0x44652241
mov ecx, 0xa25447d
mov dword [esi + 0x18], ecx
mov dword [esi + 8], eax
mov eax, 0x5a0f2993
mov ebx, 0x21603821
mov dword [esi + 4], eax
xor eax, eax
lea ecx, [esi + 0x30]
mov dword [esi + 0x24], ecx
mov edx, dword [esi + 0x84]
mov eax, dword [esi + 8]
mov dword [edx], eax
mov eax, dword [esi + 0x18]
mov dword [edx + 4], eax
mov eax, dword [esi + 4]
mov dword [edx + 8], eax
mov dword [edx + 0xc], ebx
mov eax, dword [esi + 0x14]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0xc]
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 + 0x20]
push 0
push edx
call fcn.00404360
mov edi, dword [0x42f284]
mov ecx, dword [0x42f280]
lea edx, [edi + 1]
imul edx, edi
and edx, 1
cmp ecx, 0xa
jl 0x403e8b
test edx, edx
je 0x403e8b
cmp dword [0x42f2d8], 0xa
jl 0x403e04
mov eax, dword [0x42f2dc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x403e72
lea eax, [esi + 0x30]
xor ecx, ecx
mov edx, dword [esi + 0x84]
mov ecx, dword [esi + 8]
mov dword [edx], ecx
mov ecx, dword [esi + 0x18]
mov dword [edx + 4], ecx
mov ecx, dword [esi + 4]
mov dword [edx + 8], ecx
mov dword [edx + 0xc], ebx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x34], ecx
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x30], ecx
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x3c], ecx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x38], ecx
movaps xmm0, xmmword [edx]
xorps xmm0, xmmword [eax]
movaps xmmword [edx], xmm0
mov ecx, dword [esi + 0x20]
push 0
push edx
call fcn.00404360
cmp dword [0x42f2d8], 0xa
jl 0x403d7c
mov eax, dword [0x42f2dc]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x403d7c
jmp 0x403e70
jmp 0x403e72
cmp byte [esi + 0x58], 0
jne 0x403e83
mov eax, dword [esi + 0x7c]
mov dword [eax], 0
mov ebx, dword [esi + 0x20]
jmp 0x4031df
cmp eax, 0xffffffff
jne 0x403d27
mov eax, 0x44652241
mov ecx, 0x6825447d
mov dword [esi + 0x18], ecx
mov dword [esi + 8], eax
cmp dword [0x42f2e0], 0xa
jl 0x403ec1
mov eax, dword [0x42f2e4]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x403fca
mov eax, 0x326c30b1
mov ebx, 0x21055648
mov dword [esi + 4], eax
xor eax, eax
lea ecx, [esi + 0x30]
mov dword [esi + 0x24], ecx
mov eax, dword [esi + 0x80]
mov ecx, dword [esi + 8]
mov dword [eax], ecx
mov ecx, dword [esi + 0x18]
mov dword [eax + 4], ecx
mov ecx, dword [esi + 4]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ebx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x34], ecx
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x30], ecx
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x3c], ecx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x38], ecx
movaps xmm0, xmmword [eax]
mov ecx, dword [esi + 0x24]
xorps xmm0, xmmword [ecx]
movaps xmmword [eax], xmm0
mov ecx, dword [esi + 0x20]
push 0
push eax
call fcn.00404360
mov edi, dword [0x42f284]
mov ecx, dword [0x42f280]
lea edx, [edi + 1]
imul edx, edi
and edx, 1
cmp ecx, 0xa
jl 0x403fce
test edx, edx
je 0x403fce
cmp dword [0x42f2e0], 0xa
jl 0x403f5e
mov eax, dword [0x42f2e4]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
jne 0x403fcc
lea eax, [esi + 0x30]
xor ecx, ecx
mov edx, dword [esi + 0x80]
mov ecx, dword [esi + 8]
mov dword [edx], ecx
mov ecx, dword [esi + 0x18]
mov dword [edx + 4], ecx
mov ecx, dword [esi + 4]
mov dword [edx + 8], ecx
mov dword [edx + 0xc], ebx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x34], ecx
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x30], ecx
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x3c], ecx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x38], ecx
movaps xmm0, xmmword [edx]
xorps xmm0, xmmword [eax]
movaps xmmword [edx], xmm0
mov ecx, dword [esi + 0x20]
push 0
push edx
call fcn.00404360
cmp dword [0x42f2e0], 0xa
jl 0x403ed6
mov eax, dword [0x42f2e4]
lea ecx, [eax + 1]
imul ecx, eax
and ecx, 1
je 0x403ed6
jmp 0x403fca
jmp 0x403fcc
cmp eax, 0xffffffff
setne byte [esi + 0x58]
jmp 0x403d27