Function at 0x4230b0
Capabilities:
Check os version
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xb0
mov esi, esp
mov dword [esi + 0x98], ebp
mov dword [esi + 0x9c], esp
mov dword [esi + 0xa8], 0xffffffff
lea eax, [esi + 0xa0]
mov dword [esi + 0xa4], 0x43a990
mov ecx, dword fs:[0]
mov dword [esi + 0xa0], ecx
mov dword fs:[0], eax
mov eax, dword [0x607534]
mov ecx, dword [0x607538]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete al
cmp ecx, 0xa
setl ah
xor ah, al
mov eax, 0x754df58f
mov ebx, 0x49616297
cmovne ebx, eax
test edi, edx
sete byte [esi + 0x10]
cmovne eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x30]
cmovge eax, ebx
mov edx, 0xbbaa0b6c
mov ecx, 0x3c16e30f
nop word [eax + eax]
cmp edx, 0x49616296
jle 0x423170
cmp edx, 0x49616297
je 0x42318a
cmp edx, 0x754df58f
jne 0x423150
jmp 0x4231b9
cmp edx, 0xbbaa0b6c
je 0x423197
cmp edx, 0x3c16e30f
jne 0x423150
mov word [esi + 8], 0x7a61
mov edx, eax
jmp 0x423150
mov word [esi + 8], 0x7a61
mov edx, 0x3c16e30f
jmp 0x423150
movzx ebx, byte [esi + 0x10]
movzx edx, byte [esi + 0x30]
mov dh, bl
xor dh, dl
mov edi, 0x49616297
cmovne edi, ecx
test dl, dl
mov edx, edi
cmovne edx, ecx
test bl, bl
cmove edx, edi
jmp 0x423150
mov eax, dword [0x6079f4]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
cmp dword [0x6079f8], 0xa
setl cl
test cl, al
jne 0x4231f2
xor cl, al
jne 0x4231f2
nop word cs:[eax + eax]
jmp 0x4231f0
vxorps xmm0, xmm0, xmm0
vmovaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0x44], 0
mov dword [esi + 0x40], 0
lea ecx, [esi + 0x30]
call fcn.0040d170
mov ecx, dword [0x6079e4]
xor eax, eax
mov edx, dword [0x6079e8]
jmp 0x42323f
mov eax, dword [esi + 0x2c]
inc eax
cmp eax, 0x3e8
je 0x4235f2
mov dword [esi + 0x2c], eax
lea eax, [ecx + 1]
imul eax, ecx
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
sete al
cmp edx, 0xa
setl cl
test cl, al
jne 0x423265
xor cl, al
je 0x4235d0
mov dword [esi + 0xa8], 0
lea ecx, [esi + 8]
lea eax, [esi + 0x80]
push eax
call fcn.00434fe0
movsx eax, al
lea ecx, [esi + 0x30]
push eax
call fcn.00435100
lea ecx, [esi + 0x30]
call fcn.0040d830
mov ecx, dword [esi + 0x40]
cmp byte [ecx + eax - 1], 0x6f
je 0x423331
mov eax, dword [0x6079e4]
lea ecx, [eax + 1]
imul ecx, eax
mov eax, ecx
xor eax, 0xfffffffe
test eax, ecx
sete dl
setne al
cmp dword [0x6079e8], 0xa
setl ah
setge cl
cmp ah, dl
jne 0x4232d0
or cl, al
jne 0x42330b
nop dword [eax]
lea ecx, [esi + 0x30]
call fcn.0040d830
mov dword [esi + 0xc], eax
mov ecx, dword [0x6079e4]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, edx
xor edi, 0xfffffffe
and edi, edx
sete bl
setne al
mov edx, dword [0x6079e8]
cmp edx, 0xa
setl ah
setge bh
cmp ah, bl
jne 0x423320
or bh, al
je 0x423320
lea ecx, [esi + 0x30]
call fcn.0040d830
jmp 0x4232d0
mov eax, dword [esi + 0x40]
mov ebx, dword [esi + 0xc]
cmp byte [eax + ebx - 1], 0x75
jne 0x42347b
lea edi, [esi + 0x30]
mov ecx, edi
lea eax, [esi + 0x60]
push eax
call fcn.00435210
mov ecx, edi
call fcn.0040d830
mov ebx, eax
add ebx, dword [esi + 0x40]
mov ecx, dword [0x607a84]
mov edx, dword [0x607a88]
lea edi, [ecx + 1]
imul edi, ecx
not edi
or edi, 0xfffffffe
cmp edi, 0xffffffff
sete byte [esi + 0xb]
cmp edx, 0xa
setl byte [esi + 7]
mov ecx, 0xbefcc275
nop word cs:[eax + eax]
cmp ecx, 0xbefcc274
jg 0x4233f0
cmp ecx, 0x802b849b
je 0x42342f
cmp ecx, 0x90714158
jne 0x423380
lea ecx, [esi + 0x50]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x10]
mov dword [ecx], ebx
mov edi, dword [0x607a84]
mov edx, dword [0x607a88]
lea ecx, [edi + 1]
imul ecx, edi
mov edi, ecx
xor edi, 0xfffffffe
test edi, ecx
mov dword [esi + 0xc], ebx
sete bl
cmp edx, 0xa
setl bh
xor bh, bl
mov ebx, 0x802b849b
mov eax, 0x10fc5877
cmovne ebx, eax
test edi, ecx
mov ecx, ebx
cmove ecx, eax
cmp edx, 0xa
cmovge ecx, ebx
mov ebx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
jmp 0x423380
cmp ecx, 0x10fc5877
je 0x423440
cmp ecx, 0xbefcc275
jne 0x423380
movzx edx, byte [esi + 0xb]
movzx ecx, byte [esi + 7]
mov dh, dl
xor dh, cl
test cl, cl
mov ecx, 0x802b849b
mov edi, 0x90714158
cmovne ecx, edi
test dl, dl
mov eax, 0x802b849b
cmove ecx, eax
test dh, dh
cmovne ecx, edi
jmp 0x423380
mov dword [esi + 0x50], ebx
mov ecx, 0x90714158
jmp 0x423380
mov eax, dword [esi + 0x10]
mov eax, dword [esi + 0x60]
cmp eax, dword [esi + 0x50]
jne 0x4234ac
mov ecx, dword [0x6079e4]
mov edx, dword [0x6079e8]
lea eax, [ecx + 1]
imul eax, ecx
mov edi, eax
xor edi, 0xfffffffe
and edi, eax
test edi, edi
sete al
cmp edx, 0xa
setl ah
test al, ah
jne 0x42347b
xor al, ah
je 0x4235f0
test edi, edi
sete al
cmp edx, 0xa
setl ah
test al, ah
jne 0x423230
xor al, ah
jne 0x423230
jmp 0x4235e0
mov eax, dword [esi + 0x60]
inc eax
mov dword [esi + 0x60], eax
cmp eax, dword [esi + 0x50]
je 0x423464
mov ecx, dword [0x607a0c]
lea edx, [ecx + 1]
imul edx, ecx
mov edi, dword [0x607a10]
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0xb]
sete dl
mov ecx, 0xd98cb4a8
mov ebx, 0x2e957925
cmove ecx, ebx
cmp edi, 0xa
setl byte [esi + 7]
setl dh
mov edi, 0xd98cb4a8
cmovge ecx, edi
xor dh, dl
cmovne ecx, ebx
mov edx, 0x8fa930ac
nop word cs:[eax + eax]
cmp edx, 0x2e957924
jg 0x423520
cmp edx, 0x8fa930ac
je 0x423534
cmp edx, 0xd98cb4a8
jne 0x423500
mov edx, 0x48310b3c
jmp 0x423500
cmp edx, 0x2e957925
je 0x423570
cmp edx, 0x48310b3c
jne 0x423500
mov edx, ecx
jmp 0x423500
movzx ebx, byte [esi + 0xb]
movzx edx, byte [esi + 7]
mov bh, dl
xor bh, bl
test dl, dl
mov edx, 0xd98cb4a8
mov edi, 0x48310b3c
cmovne edx, edi
test bl, bl
mov edi, 0xd98cb4a8
cmove edx, edi
test bh, bh
mov edi, 0x48310b3c
cmovne edx, edi
jmp 0x423500
mov dword [esi + 0x10], eax
mov edi, dword [esi + 0x10]
movsx eax, byte [edi]
push eax
call fcn.005de535
add esp, 4
mov ecx, eax
xor cl, 0xf5
and cl, al
mov byte [edi], cl
mov ecx, dword [0x6079e4]
mov edx, dword [0x6079e8]
lea edi, [ecx + 1]
imul edi, ecx
and edi, 1
sete al
cmp edx, 0xa
setl ah
test ah, al
jne 0x4234a0
xor ah, al
jne 0x4234a0
nop dword [eax]
jmp 0x4235c0
jmp 0x4235d0
jmp 0x4235e0
jmp 0x4235f0
mov eax, dword [0x607524]
mov ecx, dword [0x607528]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x50]
cmp ecx, 0xa
setl byte [esi + 0x60]
mov eax, 0xe86505d5
nop dword [eax + eax]
cmp eax, 0xe86505d4
jg 0x423650
cmp eax, 0x89277b89
je 0x42368e
cmp eax, 0xe619f5e1
jne 0x423620
lea ecx, [esi + 0x30]
call fcn.0040d830
mov eax, 0x89277b89
jmp 0x423620
cmp eax, 0x1bd5f7c2
je 0x4236dd
cmp eax, 0xe86505d5
jne 0x423620
movzx ecx, byte [esi + 0x50]
movzx eax, byte [esi + 0x60]
mov edx, eax
xor dl, cl
test al, al
mov eax, 0xe619f5e1
mov edi, 0x89277b89
cmovne eax, edi
test cl, cl
mov ecx, 0xe619f5e1
cmove eax, ecx
test dl, dl
cmovne eax, edi
jmp 0x423620
lea ecx, [esi + 0x30]
call fcn.0040d830
mov ebx, eax
add ebx, 0xd7
mov eax, dword [0x607524]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0xe619f5e1
mov edi, 0x1bd5f7c2
cmove eax, edi
cmp dword [0x607528], 0xa
mov edx, 0xe619f5e1
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x423620
mov dword [esi + 0x10], ebx
mov eax, dword [esi + 0x10]
cmp byte [eax], 0x31
jne 0x4237e9
mov eax, dword [0x607524]
mov ecx, dword [0x607528]
lea edx, [eax + 1]
imul edx, eax
mov eax, edx
xor eax, 0xfffffffe
test eax, edx
sete byte [esi + 0x50]
cmp ecx, 0xa
setl byte [esi + 0x60]
mov eax, 0xe86505d5
nop word cs:[eax + eax]
cmp eax, 0xe86505d4
jg 0x423750
cmp eax, 0x89277b89
je 0x423785
cmp eax, 0xe619f5e1
jne 0x423720
lea ecx, [esi + 0x30]
call fcn.0040d830
mov eax, 0x89277b89
jmp 0x423720
cmp eax, 0x1bd5f7c2
je 0x4237d4
cmp eax, 0xe86505d5
jne 0x423720
movzx ecx, byte [esi + 0x50]
movzx eax, byte [esi + 0x60]
mov edx, ecx
xor dl, al
mov edx, 0xe619f5e1
mov edi, 0x89277b89
cmovne edx, edi
test al, al
mov eax, edx
cmovne eax, edi
test cl, cl
cmove eax, edx
jmp 0x423720
lea ecx, [esi + 0x30]
call fcn.0040d830
mov ebx, eax
add ebx, 0x2d0
mov eax, dword [0x607524]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete cl
mov eax, 0xe619f5e1
mov edi, 0x1bd5f7c2
cmove eax, edi
cmp dword [0x607528], 0xa
mov edx, 0xe619f5e1
cmovge eax, edx
setl dl
xor dl, cl
cmovne eax, edi
jmp 0x423720
mov dword [esi + 0x10], ebx
mov eax, dword [esi + 0x10]
cmp byte [eax], 0x30
jne 0x4237e9
push 0
push 0
call dword [sym.imp.KERNEL32.dll_Beep]
mov ecx, dword [0x6079e4]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x6079e8], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x423814
or cl, al
test cl, 1
jne 0x42384e
jmp 0x423814
lea edi, [esi + 0x30]
mov ecx, edi
call fcn.0040f050
mov ecx, edi
call fcn.0040a100
mov ecx, dword [0x6079e4]
lea eax, [ecx + 1]
imul eax, ecx
test al, 1
sete dl
cmp dword [0x6079e8], 0xa
setl ch
setge cl
cmp ch, dl
jne 0x423861
or cl, al
test cl, 1
je 0x423861
lea edi, [esi + 0x30]
mov ecx, edi
call fcn.0040f050
mov ecx, edi
call fcn.0040a100
jmp 0x423814
mov eax, dword [0x607b7c]
mov ecx, dword [0x607b80]
lea edx, [eax + 1]
imul edx, eax
mov edi, edx
xor edi, 0xfffffffe
test edi, edx
sete al
cmp ecx, 0xa
setl ah
xor ah, al
mov eax, 0xaef75ea2
mov ebx, 0x97d2621a
cmovne ebx, eax
test edi, edx
sete byte [esi + 0x10]
cmovne eax, ebx
cmp ecx, 0xa
setl byte [esi + 0x30]
cmovge eax, ebx
mov edx, 0x977149b3
mov ecx, 0xca991262
nop
cmp edx, 0xaef75ea1
jg 0x4238d0
cmp edx, 0x977149b3
je 0x4238e4
cmp edx, 0x97d2621a
jne 0x4238b0
mov edx, 0xca991262
jmp 0x4238b0
cmp edx, 0xaef75ea2
je 0x423906
cmp edx, 0xca991262
jne 0x4238b0
mov edx, eax
jmp 0x4238b0
movzx ebx, byte [esi + 0x10]
movzx edx, byte [esi + 0x30]
mov dh, bl
xor dh, dl
mov edi, 0x97d2621a
cmovne edi, ecx
test dl, dl
mov edx, edi
cmovne edx, ecx
test bl, bl
cmove edx, edi
jmp 0x4238b0
mov eax, dword [0x6070ec]
mov ecx, dword [0x6070f0]
lea edx, [eax + 1]
imul edx, eax
not edx
or edx, 0xfffffffe
cmp edx, 0xffffffff
sete byte [esi + 0x50]
cmp ecx, 0xa
setl byte [esi + 0x10]
mov edi, 0x51c57119
mov edx, 0x80524e0e
nop word cs:[eax + eax]
cmp edi, 0x51c57118
jg 0x423980
cmp edi, 0x80524e0e
je 0x4239b5
cmp edi, 0x37214a95
jne 0x423940
mov eax, 0xb6fb81e9
mov ecx, 0xa002d81
mov dword [esi + 0x64], ecx
mov dword [esi + 0x60], eax
mov eax, 0xb6b7739b
mov ecx, 0x823165d8
mov dword [esi + 0x6c], ecx
mov dword [esi + 0x68], eax
mov edi, 0x80524e0e
jmp 0x423940
cmp edi, 0x7d582712
je 0x423a1c
cmp edi, 0x51c57119
jne 0x423940
movzx ecx, byte [esi + 0x50]
mov bh, byte [esi + 0x10]
mov bl, cl
xor bl, bh
mov eax, 0x37214a95
cmovne eax, edx
test bh, bh
mov edi, eax
cmovne edi, edx
test cl, cl
cmove edi, eax
jmp 0x423940
lea eax, [esi + 0x60]
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x30]
mov ecx, 0xb6fb81e9
mov edi, 0xa002d81
mov dword [eax + 4], edi
mov dword [eax], ecx
mov ecx, 0xb6b7739b
mov edi, 0x823165d8
mov dword [eax + 0xc], edi
mov dword [eax + 8], ecx
mov eax, dword [0x6070ec]
lea ecx, [eax + 1]
imul ecx, eax
not ecx
or ecx, 0xfffffffe
cmp ecx, 0xffffffff
sete al
mov edi, 0x37214a95
mov ebx, 0x7d582712
cmove edi, ebx
cmp dword [0x6070f0], 0xa
mov ecx, 0x37214a95
cmovge edi, ecx
setl cl
xor cl, al
cmovne edi, ebx
jmp 0x423940
mov eax, 0xd29aeea5
mov ecx, 0x786244cd
mov dword [esi + 0x84], ecx
mov dword [esi + 0x88], eax
mov ebx, 0xe1ce01fa
mov ecx, 0x823165d8
lea edx, [esi + 0x10]
xor eax, eax
mov dword [esi + 0xc], edx
mov dword [esi + 0x8c], edx
mov eax, dword [esi + 0x30]
mov eax, dword [0x607aac]
lea edx, [eax + 1]
imul edx, eax
and edx, 1
mov dword [esi + 0x2c], edx
sete byte [esi + 8]
mov eax, 0x6cdd9eea
mov edi, 0xda19184b
cmove edi, eax
sete al
mov edx, dword [0x607ab0]
mov dword [esi + 0x7c], edx
cmp edx, 0xa
setl byte [esi + 0x50]
mov edx, 0xda19184b
cmovge edi, edx
setl dl
xor dl, al
mov eax, 0x6cdd9eea
cmovne edi, eax
mov eax, dword [esi + 0x84]
mov dword [esi + 0x14], eax
mov eax, dword [esi + 0x88]
mov dword [esi + 0x10], eax
mov dword [esi + 0x90], ecx
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x94], ebx
mov dword [esi + 0x18], ebx
mov eax, 0xd3b29296
mov ecx, 0xbea82fff
nop word cs:[eax + eax]
cmp eax, 0xda19184a
jle 0x423af0
cmp eax, 0xda19184b
je 0x423b20
cmp eax, 0x6cdd9eea
jne 0x423ad0
jmp 0x423b35
cmp eax, 0xbea82fff
je 0x423b27
cmp eax, 0xd3b29296
jne 0x423ad0
movzx edx, byte [esi + 8]
movzx eax, byte [esi + 0x50]
mov ah, dl
xor ah, al
mov ebx, 0xda19184b
cmovne ebx, ecx
test al, al
mov eax, ebx
cmovne eax, ecx
test dl, dl
cmove eax, ebx
jmp 0x423ad0
mov eax, 0xbea82fff
jmp 0x423ad0
mov eax, dword [esi + 0x8c]
vmovaps xmm0, xmmword [eax]
mov eax, edi
jmp 0x423ad0
cmp dword [esi + 0x2c], 0
vmovaps xmmword [esi + 0x30], xmm0
vmovaps xmm0, xmmword [esi + 0x30]
sete byte [esi + 8]
cmp dword [esi + 0x7c], 0xa
setl byte [esi + 0x50]
mov eax, 0xd3b29296
vmovaps xmm1, xmmword [esi + 0x60]
mov ecx, 0xbea82fff
nop
cmp eax, 0xda19184a
jle 0x423b80
cmp eax, 0xda19184b
je 0x423bb0
cmp eax, 0x6cdd9eea
jne 0x423b60
jmp 0x423bbb
cmp eax, 0xbea82fff
je 0x423bb7
cmp eax, 0xd3b29296
jne 0x423b60
movzx edx, byte [esi + 8]
movzx eax, byte [esi + 0x50]
mov ah, dl
xor ah, al
mov ebx, 0xda19184b
cmovne ebx, ecx
test al, al
mov eax, ebx
cmovne eax, ecx
test dl, dl
cmove eax, ebx
jmp 0x423b60
mov eax, 0xbea82fff
jmp 0x423b60
mov eax, edi
jmp 0x423b60
vmovaps xmmword [esi + 0x30], xmm1
vmovaps xmm1, xmmword [esi + 0x30]
mov eax, 0xbce88bce
mov ecx, 0x4a5128a8
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], eax
mov eax, 0x8da265d4
mov ecx, 0x823165d8
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x84]
mov dword [esi + 0x14], eax
vmovddup xmm2, qword [0x5f0438]
vandnps xmm3, xmm1, xmm2
vandnps xmm4, xmm0, xmm2
vandnps xmm1, xmm2, xmm1
vorps xmm1, xmm3, xmm1
vandnps xmm0, xmm2, xmm0
vorps xmm0, xmm4, xmm0
vxorps xmm0, xmm1, xmm0
vmovaps xmmword [esi + 0x60], xmm0
mov eax, dword [esi + 0x88]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x90]
mov dword [esi + 0x1c], eax
xor eax, eax
mov ecx, dword [esi + 0xc]
mov dword [esi + 0xc], ecx
cmp dword [esi + 0x2c], 0
sete byte [esi + 7]
cmp dword [esi + 0x7c], 0xa
setl byte [esi + 8]
mov eax, dword [esi + 0x94]
mov dword [esi + 0x18], eax
mov ebx, 0xd3b29296
mov ecx, 0xbea82fff
nop word cs:[eax + eax]
cmp ebx, 0xda19184a
jle 0x423c80
cmp ebx, 0xda19184b
je 0x423cb6
cmp ebx, 0x6cdd9eea
jne 0x423c60
jmp 0x423cc8
cmp ebx, 0xbea82fff
je 0x423cbd
cmp ebx, 0xd3b29296
jne 0x423c60
movzx eax, byte [esi + 7]
mov dh, byte [esi + 8]
mov dl, al
xor dl, dh
test dh, dh
mov ebx, 0xda19184b
cmovne ebx, ecx
test al, al
mov eax, 0xda19184b
cmove ebx, eax
test dl, dl
cmovne ebx, ecx
jmp 0x423c60
mov ebx, 0xbea82fff
jmp 0x423c60
mov eax, dword [esi + 0xc]
vmovaps xmm0, xmmword [eax]
mov ebx, edi
jmp 0x423c60
cmp dword [esi + 0x2c], 0
vmovaps xmmword [esi + 0x30], xmm0
vmovaps xmm0, xmmword [esi + 0x30]
sete byte [esi + 7]
cmp dword [esi + 0x7c], 0xa
setl byte [esi + 8]
mov eax, 0xd3b29296
vmovaps xmm1, xmmword [esi + 0x50]
mov ecx, 0xbea82fff
nop word cs:[eax + eax]
cmp eax, 0xda19184a
jle 0x423d20
cmp eax, 0xda19184b
je 0x423d50
cmp eax, 0x6cdd9eea
jne 0x423d00
jmp 0x423d5b
cmp eax, 0xbea82fff
je 0x423d57
cmp eax, 0xd3b29296
jne 0x423d00
movzx edx, byte [esi + 7]
movzx eax, byte [esi + 8]
mov ah, dl
xor ah, al
mov ebx, 0xda19184b
cmovne ebx, ecx
test al, al
mov eax, ebx
cmovne eax, ecx
test dl, dl
cmove eax, ebx
jmp 0x423d00
mov eax, 0xbea82fff
jmp 0x423d00
mov eax, edi
jmp 0x423d00
vmovaps xmmword [esi + 0x30], xmm1
vmovaps xmm1, xmmword [esi + 0x30]
vmovddup xmm2, qword [0x5f0440]
vandnps xmm3, xmm1, xmm2
vandnps xmm4, xmm0, xmm2
vandnps xmm1, xmm2, xmm1
vorps xmm1, xmm3, xmm1
vandnps xmm0, xmm2, xmm0
vorps xmm0, xmm4, xmm0
vxorps xmm0, xmm1, xmm0
vmovaps xmmword [esi + 0x50], xmm0
mov dword [esi + 0xa8], 0xffffffff
lea eax, [esi + 0x50]
push eax
call fcn.00402910
lea ecx, [esi + 0x60]
push ecx
push eax
call fcn.00415f30
add esp, 8
push dword [ebp + 8]
call eax
mov ecx, dword [esi + 0xa0]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret