Function at 0x6020e0
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, 0x110
mov esi, esp
mov dword [esi + 0xf8], ebp
mov dword [esi + 0x84], ecx
mov dword [esi + 0xfc], esp
mov dword [esi + 0x108], 0xffffffff
lea eax, [esi + 0x100]
mov dword [esi + 0x104], 0x606ca0
mov ecx, dword fs:[0]
mov dword [esi + 0x100], ecx
mov dword fs:[0], eax
call fcn.00606c60
mov edx, dword [0xb22244]
mov ecx, dword [0xb2222c]
mov ebx, 0xffffaa85
sub ebx, eax
sub ecx, ebx
add ecx, edx
call dword [0xb0836c]
call ecx
mov ecx, dword [0xb22248]
mov edi, dword [0xb22224]
mov dword [esi + 0x18], ebx
sub edi, ebx
mov ebx, eax
add edi, ecx
mov ecx, edi
call dword [0xb0836c]
lea ecx, [esi + 0xe0]
call edi
mov eax, ebx
xor eax, 0x2568637d
cmp dword [0xb22198], eax
mov ecx, dword [0xb22190]
mov dword [esi + 8], ebx
mov edi, ebx
jne 0x602456
shl edi, 4
mov eax, ebx
shr eax, 1
mov edx, ebx
shl edx, 0x1f
xor edx, ebx
movd xmm2, edi
movd xmm1, ebx
movd xmm0, edx
movd xmm3, eax
pshufd xmm6, xmm1, 0x44
mov eax, ebx
xor eax, 0x5d835beb
movdqa xmm5, xmm1
psllq xmm5, 0x1c
movdqa xmm4, xmm6
psllq xmm4, 0x1b
movsd xmm4, xmm5
xorpd xmm4, xmm6
pshufd xmm5, xmm4, 0xee
movd edi, xmm4
mov dword [esi + 0x10], edi
xor edi, 0x1ada87d
add edi, eax
movd edx, xmm5
mov eax, edx
xor eax, 0x4a7ca414
add edi, eax
movdqa xmm7, xmm1
punpckldq xmm7, xmm2
lea eax, [ebx*8]
mov dword [esi + 4], eax
movd xmm5, eax
movdqa xmm2, xmm1
movdqa xmmword [esi + 0x60], xmm1
punpckldq xmm2, xmm5
punpckldq xmm0, xmm3
movdqa xmm3, xmm0
punpcklqdq xmm3, xmm2
punpcklqdq xmm2, xmm7
pxor xmm2, xmmword [0xaabbc0]
pxor xmm3, xmmword [0xaabbd0]
paddq xmm3, xmm2
pshufd xmm2, xmm3, 0xee
paddq xmm2, xmm3
movd eax, xmm2
add edi, eax
mov eax, ebx
xor eax, 0x3573f740
mov eax, dword [ecx + eax*4]
add edi, eax
add edi, 3
mov eax, ebx
xor eax, 0x43c2fb9e
xor edx, 0x543d0461
add edx, eax
add edx, edi
sub edi, ecx
mov dword [esi + 0x14], edi
movdqa xmm3, xmmword [0xaabbe0]
pmuludq xmm3, xmm6
psllq xmm3, 0x20
por xmm3, xmm6
movdqa xmm7, xmm1
psllq xmm7, 0x1e
movdqa xmm2, xmm6
psllq xmm2, 0x1d
movsd xmm2, xmm7
xorpd xmm2, xmm6
pshufd xmm7, xmm3, 0xee
movapd xmm6, xmm2
movsd xmm6, xmm0
xorpd xmm6, xmmword [0xaabc10]
pxor xmm7, xmmword [0xaabc20]
paddq xmm7, xmm6
movd xmm6, ebx
xor dword [esi + 4], 0x6c7b55b4
mov edi, ebx
xor edi, 0x3ef28749
mov eax, ebx
xor eax, 0xbbc7112e
mov dword [esi + 0x1c], eax
punpcklqdq xmm5, xmm6
movdqa xmm6, xmmword [0xaabc00]
pxor xmm6, xmm4
shufps xmm5, xmm4, 0xe2
movsd xmm4, xmm0
xorpd xmm4, xmmword [0xaabc30]
xorps xmm5, xmmword [0xaabc40]
paddq xmm5, xmm4
pshufd xmm4, xmm7, 0xee
paddq xmm4, xmm7
pshufd xmm7, xmm5, 0xee
paddq xmm7, xmm5
movd ecx, xmm4
movd eax, xmm7
add eax, ecx
pshufd xmm4, xmm4, 0x55
pshufd xmm5, xmm7, 0x55
movd ecx, xmm4
movd ebx, xmm5
adc ebx, ecx
movd xmm4, ebx
movdqa xmm5, xmmword [0xaabbf0]
pxor xmm5, xmm3
movapd xmm7, xmmword [0xaabc50]
xorpd xmm7, xmm2
paddq xmm7, xmm5
movd xmm5, eax
punpckldq xmm5, xmm4
movd xmm4, edi
movd xmm1, dword [esi + 4]
punpckldq xmm4, xmm1
punpcklqdq xmm5, xmm4
paddq xmm5, xmm6
paddq xmm5, xmm7
pshufd xmm1, xmm5, 0xee
paddq xmm1, xmm5
mov eax, dword [esi + 0x14]
lea eax, [eax + edx*2]
add eax, dword [esi + 0x1c]
movd ecx, xmm1
add ecx, eax
add ecx, 0xa
mov ebx, dword [esi + 8]
mov eax, ebx
xor eax, 0xa61076cf
mov edi, ebx
xor edi, 0x59ef8930
mov edx, ebx
xor edx, 0x2600e312
add edi, edx
add edi, eax
lea eax, [ebx + ebx]
movd xmm1, eax
movdqa xmm4, xmmword [esi + 0x60]
punpckldq xmm4, xmm1
pshufd xmm1, xmm4, 0x44
movsd xmm2, xmm3
punpcklqdq xmm0, xmm3
movdqa xmm3, xmmword [0xaabc60]
pxor xmm3, xmm1
pxor xmm1, xmmword [0xaabc70]
pxor xmm0, xmmword [0xaabc80]
xorpd xmm2, xmmword [0xaabc90]
paddq xmm1, xmm3
paddq xmm2, xmm0
pshufd xmm0, xmm2, 0xee
paddq xmm0, xmm2
pshufd xmm2, xmm1, 0xee
paddq xmm2, xmm1
lea eax, [edi + ecx]
add eax, 2
inc edx
imul edx, eax
mov eax, ebx
xor eax, 0xf356f2b0
add eax, edx
movd edx, xmm2
mov edi, dword [esi + 0x10]
xor edi, 0xdca90d4f
add edx, edi
movd edi, xmm0
add edx, edi
add edx, eax
lea eax, [ecx + edx]
add eax, 5
mov dword [esi + 0x8c], eax
mov dword [0xb22218], 0xbb664a21
jmp 0x602491
xor edi, 0xd9ff1ced
mov eax, ebx
shl eax, 0x1c
xor eax, ebx
xor eax, 0xf14d346e
mov edx, ebx
xor edx, 0xdeb2cb91
add edx, edi
mov edi, ebx
shl edi, 0x1b
xor edi, ebx
xor edi, 0xce00e312
add edi, eax
add edi, edx
add edi, dword [ecx]
lea eax, [ecx + edi]
add eax, 2
mov dword [esi + 0x8c], eax
mov eax, dword [0xaabe4c]
mov dword [esi + 0x80], eax
mov eax, dword [0xb22194]
add eax, dword [eax]
mov dword [esi + 0x78], eax
mov dword [esi + 0x108], 0xd
lea ecx, [esi + 0xe0]
mov dword [esi + 0x74], ecx
xor edx, edx
call fcn.00606ad0
mov dword [esi + 0xbc], esp
sub esp, 0x20
mov dword [esi + 0x58], esp
mov ebx, dword [esi + 8]
mov eax, ebx
xor eax, 0xa8c08b2
mov dword [esi + 0x14], eax
mov dword [esi + 0x54], eax
mov edi, ebx
xor edi, 0xa8c08b8
mov dword [esi + 0x50], edi
movzx eax, byte [0xb220a6]
mov edx, ebx
xor dl, 0x28
cmp al, dl
mov byte [esi + 0xf], bl
je 0x602601
mov ah, bl
mov ecx, ebx
xor cl, 0xf7
xor ah, 0x21
nop dword [eax + eax]
mov al, cl
lock cmpxchg byte [0xb220a6], ah
je 0x602525
cmp al, dl
jne 0x602510
jmp 0x602601
mov ecx, ebx
xor ecx, 0xa8c08bb
cmp ecx, 2
mov eax, 1
cmovge eax, ecx
xor ecx, ecx
cmp eax, 8
jb 0x6025e0
xor ecx, ecx
cmp eax, 0x20
jb 0x6025a1
mov ebx, edi
mov ecx, eax
and ecx, 0x7fffffe0
xor edi, edi
nop word cs:[eax + eax]
movdqa xmm0, xmmword [edi + 0xaabe60]
movdqa xmm1, xmmword [edi + 0xaabe70]
pxor xmm0, xmmword [edi + 0xb220a0]
pxor xmm1, xmmword [edi + 0xb220b0]
movdqa xmmword [edi + 0xb220a0], xmm0
movdqa xmmword [edi + 0xb220b0], xmm1
add edi, 0x20
cmp ecx, edi
jne 0x602560
cmp eax, ecx
mov edi, ebx
je 0x6025f1
test al, 0x18
je 0x6025e0
mov ebx, edi
mov edi, ecx
mov ecx, eax
and ecx, 0x7ffffff8
nop dword [eax]
movq xmm0, qword [edi + 0xb220a0]
movq xmm1, qword [edi + 0xaabe60]
pxor xmm1, xmm0
movq qword [edi + 0xb220a0], xmm1
add edi, 8
cmp ecx, edi
jne 0x6025b0
cmp eax, ecx
mov edi, ebx
je 0x6025f1
nop dword [eax]
mov dh, byte [ecx + 0xaabe60]
xor byte [ecx + 0xb220a0], dh
inc ecx
cmp eax, ecx
jne 0x6025e0
xchg byte [0xb220a6], dl
mov dword [esi + 0x108], 9
movzx eax, byte [0xb220a4]
mov byte [esi + 0x44], al
mov eax, dword [0xb220a0]
mov dword [esi + 0x40], eax
mov dword [esi + 0xb8], edi
mov byte [esi + edi + 0x40], 0
mov dword [esi + 0x108], 9
call fcn.00600740
mov ecx, eax
mov eax, dword [esi + 0x58]
mov dword [esi + 0x88], eax
mov edx, dword [esi + 8]
xor edx, 0xa8c08b7
movzx eax, byte [esi + 0xf]
xor al, 0x8d
mov byte [esi + 0x10], al
mov ebx, 0xffffffea
lea edi, [esi + 0xa5]
mov dword [esi + 4], edx
nop dword [eax + eax]
mov eax, ecx
xor edx, edx
div dword [esi + 4]
or dl, byte [esi + 0x10]
mov byte [edi - 1], dl
mov edx, dword [esi + 4]
dec edi
inc ebx
cmp ecx, edx
mov ecx, eax
jae 0x602660
mov dword [esi + 0x30], 0
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x34], ecx
mov byte [esi + 0x20], 0
mov eax, dword [esi + 8]
xor eax, 0xa8c08a8
mov dword [esi + 0x1c], eax
add eax, ebx
cmp eax, 0xffffffff
je 0x6026f1
mov edx, dword [esi + 8]
xor edx, 0xa8c08ab
lea eax, [edx + ebx]
cmp eax, ecx
jbe 0x6026d1
mov dword [esi + 0x108], 9
sub esp, 0xc
movzx ecx, byte [esi + 0x5c]
mov byte [esp + 4], cl
mov dword [esp + 8], edi
mov dword [esp], eax
lea ecx, [esi + 0x20]
call fcn.0052ce20
jmp 0x6026ee
mov dword [esi + 0x30], eax
lea ecx, [esi + 0x20]
push eax
push edi
push ecx
mov edi, edx
call fcn.0077cce0
add esp, 0xc
lea eax, [esi + edi]
add eax, 0x20
mov byte [ebx + eax], 0
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x30]
cmp dword [esi + 0x34], ecx
jbe 0x6026fe
mov ecx, dword [esi + 0x20]
jmp 0x602701
lea ecx, [esi + 0x20]
mov dword [esi + 0x60], ecx
mov edx, dword [esi + 0x50]
mov ebx, dword [esi + 0x54]
mov edi, ebx
sub edi, edx
cmp edi, eax
jae 0x602744
mov dword [esi + 0x108], 0xc
sub esp, 0x10
mov ecx, eax
movzx eax, byte [esi + 0x90]
mov byte [esp + 4], al
mov dword [esp + 0xc], ecx
mov eax, dword [esi + 0x60]
mov dword [esp + 8], eax
mov dword [esp], ecx
lea ecx, [esi + 0x40]
call fcn.0052d5f0
jmp 0x602783
mov edi, dword [esi + 8]
xor edi, 0x8b4e3d4
mov dword [esi + 0x3c], eax
sub eax, edi
add eax, edx
mov ecx, eax
xor ecx, edi
and eax, edi
lea edi, [ecx + eax*2]
mov dword [esi + 0x50], edi
cmp ebx, dword [esi + 0x14]
jbe 0x60276a
mov ebx, dword [esi + 0x40]
jmp 0x60276d
lea ebx, [esi + 0x40]
mov eax, dword [esi + 0x60]
add edx, ebx
push dword [esi + 0x3c]
push eax
push edx
call fcn.0077cce0
add esp, 0xc
mov byte [ebx + edi], 0
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x14]
cmp eax, ecx
jbe 0x602832
mov edi, dword [esi + 0x20]
lea edx, [eax + 1]
mov ebx, dword [esi + 8]
mov ecx, ebx
xor ecx, 0xa8c0742
cmp edx, ecx
jbe 0x602801
mov ecx, dword [edi - 4]
mov edx, ebx
xor edx, 0xf573f741
add edx, edi
mov dword [esi + 0x3c], ecx
sub edx, ecx
mov edi, ebx
xor edi, 0xa8c089d
cmp edx, edi
jae 0x603135
mov edx, eax
not edx
mov edi, ebx
xor edi, 0xa8c0899
mov ecx, ebx
mov ebx, eax
xor ebx, edi
and edi, edx
and eax, ebx
or eax, edi
xor ecx, 0x7573f766
and ecx, edx
or ecx, ebx
not ecx
lea eax, [eax + ecx*2]
mov dword [esi + 0x60], eax
mov dword [esi + 0x108], 0xffffffff
mov ebx, dword [esi + 0x3c]
jmp 0x602806
mov ebx, edi
mov dword [esi + 0x60], edx
mov eax, dword [0xb22254]
mov edi, dword [0xb22220]
sub edi, dword [esi + 0x18]
add edi, eax
mov dword [esi + 0x108], 0xffffffff
mov ecx, edi
call dword [0xb0836c]
mov ecx, ebx
mov edx, dword [esi + 0x60]
call edi
mov ecx, dword [esi + 0x14]
mov eax, dword [esi + 0x50]
mov edx, dword [esi + 0x54]
cmp edx, eax
jne 0x602872
movzx eax, byte [0xb220b2]
mov ah, byte [esi + 0xf]
mov dl, ah
xor dl, 0xf
cmp al, dl
je 0x6028c7
mov cl, ah
xor cl, 0x1b
xor ah, 0xb
nop word [eax + eax]
mov al, cl
lock cmpxchg byte [0xb220b2], ah
je 0x6028aa
cmp al, dl
jne 0x602860
jmp 0x6028c7
mov ebx, ecx
mov ecx, eax
xor ecx, 1
mov edi, eax
and edi, 1
lea ecx, [ecx + edi*2]
mov dword [esi + 0x50], ecx
cmp edx, ebx
jbe 0x60288d
mov edx, dword [esi + 0x40]
jmp 0x602890
lea edx, [esi + 0x40]
movzx ebx, byte [esi + 0xf]
xor bl, 0x90
mov byte [edx + eax], bl
mov byte [edx + ecx], 0
mov dword [esi + 0x108], 9
jmp 0x6028fb
xor byte [0xb220b0], 0x7a
not byte [0xb220b1]
xchg byte [0xb220b2], dl
mov dword [esi + 0x108], 9
mov dword [esi + 0x108], 9
sub esp, 0x10
movzx eax, byte [esi + 0x20]
mov byte [esp + 4], al
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0xb220b0
mov dword [esp], 1
lea ecx, [esi + 0x40]
call fcn.0052d5f0
call fcn.00606b40
mov ecx, eax
mov edx, 0xffffffea
lea edi, [esi + 0xa5]
mov ebx, dword [esi + 4]
mov dword [esi + 0x60], edx
mov eax, ecx
xor edx, edx
div ebx
or dl, byte [esi + 0x10]
mov byte [edi - 1], dl
mov edx, dword [esi + 0x60]
dec edi
inc edx
cmp ecx, ebx
mov ecx, eax
jae 0x602910
mov dword [esi + 0x30], 0
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x34], ecx
mov byte [esi + 0x20], 0
mov eax, dword [esi + 0x1c]
add eax, edx
cmp eax, 0xffffffff
je 0x60299b
mov ebx, dword [esi + 8]
xor ebx, 0xa8c08ab
lea eax, [ebx + edx]
cmp eax, ecx
jbe 0x60297b
mov dword [esi + 0x108], 9
sub esp, 0xc
movzx ecx, byte [esi + 0x5c]
mov byte [esp + 4], cl
mov dword [esp + 8], edi
mov dword [esp], eax
lea ecx, [esi + 0x20]
call fcn.0052ce20
jmp 0x602998
mov dword [esi + 0x30], eax
lea ecx, [esi + 0x20]
push eax
push edi
push ecx
mov edi, edx
call fcn.0077cce0
add esp, 0xc
lea eax, [esi + ebx]
add eax, 0x20
mov byte [edi + eax], 0
mov ecx, dword [esi + 0x14]
mov ebx, dword [esi + 0x30]
cmp dword [esi + 0x34], ecx
jbe 0x6029a8
mov eax, dword [esi + 0x20]
jmp 0x6029ab
lea eax, [esi + 0x20]
mov dword [esi + 4], eax
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0x50]
mov eax, dword [esi + 0x54]
mov edi, eax
sub edi, edx
cmp edi, ebx
jae 0x6029ef
mov dword [esi + 0x108], 0xb
sub esp, 0x10
movzx eax, byte [esi + 0x90]
mov byte [esp + 4], al
mov dword [esp + 0xc], ebx
mov eax, dword [esi + 4]
mov dword [esp + 8], eax
mov dword [esp], ebx
lea ecx, [esi + 0x40]
call fcn.0052d5f0
jmp 0x602a3b
mov edi, edx
neg edi
xor ecx, 0xfbb25d8b
mov dword [esi + 0x60], eax
lea eax, [ecx + 1]
mov dword [esi + 0x10], ebx
mov ebx, eax
xor ebx, edi
and eax, edi
lea eax, [ebx + eax*2]
mov edi, dword [esi + 0x10]
add edi, ecx
inc edi
sub edi, eax
mov dword [esi + 0x50], edi
mov eax, dword [esi + 0x60]
cmp eax, dword [esi + 0x14]
jbe 0x602a23
mov ebx, dword [esi + 0x40]
jmp 0x602a26
lea ebx, [esi + 0x40]
add edx, ebx
push dword [esi + 0x10]
push dword [esi + 4]
push edx
call fcn.0077cce0
add esp, 0xc
mov byte [ebx + edi], 0
mov eax, dword [esi + 0x34]
cmp eax, dword [esi + 0x14]
mov ebx, dword [esi + 8]
jbe 0x602aca
mov edi, dword [esi + 0x20]
lea edx, [eax + 1]
mov ecx, ebx
xor ecx, 0xa8c0742
cmp edx, ecx
jbe 0x602a9b
mov ecx, ebx
xor ecx, 0xf573f741
mov edx, ecx
xor edx, edi
and ecx, edi
mov edi, dword [edi - 4]
lea ecx, [edx + ecx*2]
sub ecx, edi
mov edx, ebx
xor edx, 0xa8c089d
cmp ecx, edx
jae 0x603144
mov ecx, ebx
xor ecx, 0xa8c0899
add eax, ecx
mov dword [esi + 0x108], 0xffffffff
mov dword [esi + 4], eax
jmp 0x602a9e
mov dword [esi + 4], edx
mov eax, dword [0xb22254]
mov ebx, dword [0xb22220]
sub ebx, dword [esi + 0x18]
add ebx, eax
mov dword [esi + 0x108], 0xffffffff
mov ecx, ebx
call dword [0xb0836c]
mov ecx, edi
mov edx, dword [esi + 4]
call ebx
mov ebx, dword [esi + 8]
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
cmp ecx, eax
jne 0x602b12
movzx eax, byte [0xb220b2]
mov ah, byte [esi + 0xf]
mov dl, ah
xor dl, 0xf
cmp al, dl
je 0x602b75
mov cl, ah
xor cl, 0x1b
xor ah, 0xb
nop word cs:[eax + eax]
mov al, cl
lock cmpxchg byte [0xb220b2], ah
je 0x602b58
cmp al, dl
jne 0x602b00
jmp 0x602b75
mov edx, ebx
xor edx, 0xd2816f01
lea ebx, [eax + edx]
mov edi, ebx
xor edi, 0xfffffffe
add ebx, ebx
and ebx, 2
sub edi, ebx
inc edi
mov ebx, edi
xor ebx, edx
and edi, edx
lea edx, [ebx + edi*2]
mov edi, edx
neg edi
mov dword [esi + 0x50], edi
cmp ecx, dword [esi + 0x14]
jbe 0x602b44
mov ecx, dword [esi + 0x40]
jmp 0x602b47
lea ecx, [esi + 0x40]
movzx ebx, byte [esi + 0xf]
xor bl, 0x90
mov byte [ecx + eax], bl
sub ecx, edx
mov byte [ecx], 0
jmp 0x602ba9
xor byte [0xb220b0], 0x7a
not byte [0xb220b1]
xchg byte [0xb220b2], dl
mov dword [esi + 0x108], 9
mov dword [esi + 0x108], 9
sub esp, 0x10
movzx eax, byte [esi + 0x20]
mov byte [esp + 4], al
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0xb220b0
mov dword [esp], 1
lea ecx, [esi + 0x40]
call fcn.0052d5f0
mov eax, dword [0xb533c4]
mov edx, eax
xor edx, 1
mov dword [0xb221a0], 0x89c4b34a
mov ecx, eax
not ecx
mov edi, ecx
and edi, 0x7ffffffe
or edi, edx
not edi
lea edx, [edx + edi*2]
mov dword [0xb533c4], edx
mov edi, edx
not edi
xor edx, eax
and edi, ecx
or edi, edx
mov dword [esi + 0xc0], 0
mov edx, 0
mov dword [esi + 0xb4], edi
cmp edi, 0xffffffff
je 0x602cd6
mov eax, dword [esi + 8]
xor eax, 0xf233736a
cmp dword [0xb221a4], eax
mov dword [esi + 0x10], edx
jne 0x602c2e
mov dword [0xb221a4], 0x6ddfb7c1
mov dword [esi + 0x108], 2
mov dword [esi + 4], 0x60
jmp 0x602c35
mov dword [esi + 4], 0x64
mov dword [esi + 0x108], 2
call fcn.00606b00
mov ecx, edx
mov edi, eax
mul dword [esi + 4]
mov ebx, dword [esi + 0xc0]
imul ebx, edi
add ebx, edx
imul ecx, dword [esi + 4]
add ecx, ebx
mov dword [esi + 0x108], 9
lea edx, [esi + 0x20]
push ecx
push eax
mov dword [esi + 4], edx
push edx
call fcn.00605420
add esp, 0xc
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x14]
cmp dword [esi + 0x34], ecx
jbe 0x602c88
mov ecx, dword [esi + 0x20]
mov dword [esi + 4], ecx
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 0x54]
mov edi, edx
sub edi, ecx
cmp edi, eax
jae 0x602cc6
mov dword [esi + 0x108], 0xa
sub esp, 0x10
movzx ecx, byte [esi + 0x90]
mov byte [esp + 4], cl
mov dword [esp + 0xc], eax
mov ecx, dword [esi + 4]
mov dword [esp + 8], ecx
mov dword [esp], eax
lea ecx, [esi + 0x40]
call fcn.0052d5f0
jmp 0x602d1c
lea edi, [ecx + eax]
mov dword [esi + 0x50], edi
cmp edx, dword [esi + 0x14]
jbe 0x602d05
mov ebx, dword [esi + 0x40]
jmp 0x602d08
mov eax, dword [esi + 8]
xor eax, 0x6a599483
cmp dword [0xb2219c], eax
jne 0x602e49
mov eax, dword [esi + 0x78]
mov edx, dword [eax]
add edx, eax
cmp dword [esi + 0x80], 0
jg 0x602e71
xor edx, edx
jmp 0x602bfe
lea ebx, [esi + 0x40]
mov edx, dword [esi + 4]
add ecx, ebx
push eax
push edx
push ecx
call fcn.0077cce0
add esp, 0xc
mov byte [ebx + edi], 0
mov eax, dword [esi + 0x34]
cmp eax, dword [esi + 0x14]
mov ebx, dword [esi + 8]
jbe 0x602dbe
mov edx, dword [esi + 0x20]
lea edi, [eax + 1]
mov ecx, ebx
xor ecx, 0xa8c0742
cmp edi, ecx
jbe 0x602d8f
mov ecx, dword [edx - 4]
mov edi, edx
mov edx, ebx
xor edx, 0xf573f741
add edx, edi
sub edx, ecx
mov edi, ebx
xor edi, 0xa8c089d
cmp edx, edi
jae 0x603153
mov edx, ebx
xor edx, 0x4686799e
add eax, edx
neg eax
mov edi, ebx
xor edi, 0xf573f766
inc edi
mov ebx, edi
xor ebx, eax
and edi, eax
add ebx, edx
lea edi, [ebx + edi*2]
neg edi
mov dword [esi + 0x108], 0xffffffff
mov dword [esi + 4], ecx
jmp 0x602d92
mov dword [esi + 4], edx
mov eax, dword [0xb22254]
mov ebx, dword [0xb22220]
sub ebx, dword [esi + 0x18]
add ebx, eax
mov dword [esi + 0x108], 0xffffffff
mov ecx, ebx
call dword [0xb0836c]
mov ecx, dword [esi + 4]
mov edx, edi
call ebx
mov ebx, dword [esi + 8]
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
mov edi, ecx
sub edi, eax
mov edx, ebx
xor edx, 0xa8c08b9
cmp edi, edx
jae 0x602e23
movzx eax, byte [0xb220c5]
mov ch, byte [esi + 0xf]
mov ah, ch
xor ah, 0xd8
cmp al, ah
mov edi, dword [esi + 0xb8]
je 0x603194
mov cl, ch
xor cl, 0xa0
xor ch, 0xc4
nop dword [eax]
mov al, cl
lock cmpxchg byte [0xb220c5], ch
je 0x603090
mov dword [0xb221a0], 0x9619b6ff
cmp al, ah
jne 0x602e00
jmp 0x603194
add edx, eax
mov dword [esi + 0x50], edx
cmp ecx, dword [esi + 0x14]
jbe 0x602e32
mov ecx, dword [esi + 0x40]
jmp 0x602e35
lea ecx, [esi + 0x40]
mov edi, ebx
xor edi, 0x6ff46d93
mov dword [ecx + eax], edi
mov byte [ecx + edx], 0
jmp 0x6031c0
mov eax, dword [esi + 8]
xor eax, 0x3573f746
mov ecx, dword [esi + 0x78]
lea edx, [ecx + eax*4]
add edx, dword [ecx + eax*4]
mov dword [0xb2219c], 0xd9a83c
cmp dword [esi + 0x80], 0
je 0x602cfe
mov dword [esi + 0x60], edx
mov eax, dword [esi + 8]
mov ecx, eax
shr ecx, 4
mov edi, eax
shl edi, 0x1c
xor edi, eax
xor edi, 0xc178bb88
xor ecx, 0x3a263a7c
mov dword [esi + 0x1c], ecx
mov ecx, eax
xor ecx, 0x66843fa4
mov dword [esi + 0x10], ecx
mov ecx, eax
xor ecx, 0x1d0f4e2b
mov dword [esi + 0x70], ecx
mov ecx, eax
shr ecx, 5
mov dword [esi + 0x3c], ecx
mov ebx, eax
shl ebx, 0x1b
xor ebx, eax
mov dword [esi + 4], ebx
xor ebx, 0x6874477
xor ecx, 0xc525654d
mov dword [esi + 0x7c], ecx
mov ecx, dword [esi + 8]
shr ecx, 1
mov eax, dword [esi + 8]
shl eax, 0x1f
xor eax, dword [esi + 8]
xor eax, 0x62f0b1d4
xor ecx, 0x96b1ccb8
add eax, ebx
mov edx, dword [esi + 8]
adc ecx, dword [esi + 0x7c]
add eax, edi
adc ecx, dword [esi + 0x1c]
add eax, dword [esi + 0x70]
adc ecx, dword [esi + 0x10]
add eax, 2
mov dword [esi + 0xd8], eax
adc ecx, 0
mov dword [esi + 0xdc], ecx
xor ecx, ecx
xor dword [esi + 4], 0x4d8588a3
mov edi, dword [esi + 0x3c]
xor edi, 0x87188309
mov eax, edx
shr eax, 2
mov ebx, edx
shl ebx, 0x1e
xor ebx, edx
xor ebx, 0x1a7a775c
xor eax, 0x7a101e9c
add ebx, dword [esi + 4]
adc eax, edi
add ebx, 1
mov dword [esi + 0xd0], ebx
adc eax, 0
mov dword [esi + 0xd4], eax
mov eax, edx
xor eax, 0x37da
mov ebx, edx
xor ebx, 0xffffc825
add ebx, eax
mov dword [esi + 0xcc], ebx
mov eax, edx
xor eax, 0x8be
mov dword [esi + 0xc8], eax
xor edx, 0xa8c08b9
add edx, 0xfffffffe
mov dword [esi + 0xc4], edx
xor ebx, ebx
mov dword [esi + 0x1c], 0
mov dword [esi + 0x70], 0
jmp 0x602fee
mov ebx, edx
mov edx, eax
mov ecx, dword [esi + 0xc8]
shl edx, cl
mov edi, 1
mov ecx, edx
mov edx, ebx
shl edi, cl
add edi, dword [esi + 0xcc]
and edx, edi
mov ecx, dword [esi + 0x78]
mov ebx, dword [esi + 0x70]
lea edi, [ecx + ebx*4]
add edi, 4
add edi, dword [ecx + ebx*4 + 4]
mov dword [esi + 0x60], edi
inc ebx
mov ecx, dword [esi + 4]
add ecx, dword [esi + 0xc4]
add ecx, eax
mov dword [esi + 0x1c], 0
mov dword [esi + 0x70], ebx
mov eax, dword [esi + 0x10]
xor edx, eax
add ecx, 2
mov ebx, edx
cmp ecx, dword [esi + 0x80]
jge 0x602bfe
mov eax, dword [esi + 0x8c]
lea edi, [eax + ecx]
cmp dword [esi + 8], 0xa5cd0d0
mov dword [esi + 4], ecx
mov dword [esi + 0x10], ebx
jne 0x603060
mov dword [esi + 0x7c], edi
mov ecx, edi
not ecx
add ecx, dword [esi + 0x60]
mov ebx, dword [esi + 0x1c]
adc ebx, 0xffffffff
mov eax, edi
mul edi
mov edi, edx
imul ebx, eax
imul edi, ecx
mul ecx
mov dword [esi + 0x3c], eax
add edi, edx
add edi, ebx
mov ebx, dword [esi + 0x7c]
mov eax, dword [esi + 0xd0]
add eax, ebx
mov ecx, dword [esi + 0xd4]
adc ecx, 0
sub eax, dword [esi + 0x3c]
sbb ecx, edi
mul ebx
imul ecx, ebx
add edx, ecx
add eax, dword [esi + 0x3c]
adc edx, edi
mov dword [0xb221b4], 0xe05e1ea6
jmp 0x603079
mov eax, dword [esi + 0xd8]
add eax, dword [esi + 0x60]
mov edx, dword [esi + 0xdc]
adc edx, dword [esi + 0x1c]
mov ebx, edi
sub eax, edi
sbb edx, 0
cmp eax, 2
sbb edx, 0
movzx edx, word [ebx]
jl 0x602f90
mov ecx, dword [esi + 4]
jmp 0x602fd8
cmp edi, 2
mov ecx, 1
cmovge ecx, edi
xor edi, edi
cmp ecx, 8
jb 0x603173
xor edi, edi
cmp ecx, 0x20
jb 0x603104
mov edi, ecx
and edi, 0x7fffffe0
xor ebx, ebx
nop word [eax + eax]
movdqa xmm0, xmmword [ebx + 0xaabe70]
movdqa xmm1, xmmword [ebx + 0xaabe80]
paddb xmm0, xmmword [ebx + 0xb220c0]
paddb xmm1, xmmword [ebx + 0xb220d0]
movdqa xmmword [ebx + 0xb220c0], xmm0
movdqa xmmword [ebx + 0xb220d0], xmm1
add ebx, 0x20
cmp edi, ebx
jne 0x6030c0
cmp ecx, edi
je 0x603184
test cl, 0x18
je 0x603173
mov ebx, edi
mov edi, ecx
and edi, 0x7ffffff8
nop
movq xmm0, qword [ebx + 0xb220c0]
movq xmm1, qword [ebx + 0xaabe70]
paddb xmm1, xmm0
movq qword [ebx + 0xb220c0], xmm1
add ebx, 8
cmp edi, ebx
jne 0x603110
jmp 0x603180
mov dword [esi + 0x108], 0
call fcn.00748ef1
mov dword [esi + 0x108], 1
call fcn.00748ef1
mov dword [esi + 0x108], 3
call fcn.00748ef1
lea esi, [ebp - 0x10c]
mov ebp, dword [esi + 0xf8]
jmp 0x6024c0
mov al, byte [edi + 0xaabe70]
add byte [edi + 0xb220c0], al
inc edi
cmp ecx, edi
jne 0x603173
xchg byte [0xb220c5], ah
mov dword [esi + 0x108], 9
mov dword [esi + 0x108], 9
sub esp, 0x10
movzx eax, byte [esi + 0x20]
mov byte [esp + 4], al
mov dword [esp + 0xc], edx
mov dword [esp], edx
mov dword [esp + 8], 0xb220c0
lea ecx, [esi + 0x40]
call fcn.0052d5f0
mov eax, dword [esi + 0x88]
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0
mov edx, dword [esi + 0xf0]
mov edi, dword [esi + 8]
mov ebx, edi
xor ebx, 0xa8c08ba
cmp dword [esi + 0xf4], ebx
jbe 0x6031f6
mov eax, dword [esi + 0xe0]
mov dword [esi + 0x74], eax
mov ecx, dword [esi + 0x58]
add ecx, 4
mov eax, edi
xor eax, 0xa8c08b5
cmp edx, eax
mov dword [esi + 4], ebx
mov dword [esi + 0x58], ecx
jae 0x60322e
mov eax, dword [esi + 0x74]
movdqu xmm0, xmmword [eax]
movdqu xmmword [ecx], xmm0
mov dword [esi + 0x108], 0x12
mov eax, 7
mov edi, edx
jmp 0x603304
mov ecx, edi
xor ecx, 0xf573f745
mov edi, edx
xor edi, ebx
mov eax, edx
and eax, ecx
or eax, edi
mov edi, dword [esi + 8]
mov dword [esi + 0x60], edx
and edx, ebx
and ecx, edx
xor eax, edx
or eax, ecx
cmp eax, 0x7ffffffe
mov edx, 0x7ffffffe
cmovb edx, eax
mov dword [0xb221b4], 0xe899d23c
lea ecx, [edx + edx]
mov eax, edi
xor eax, 0xa8c0f43
cmp edx, eax
mov dword [esi + 0x1c], edx
jbe 0x6032cf
mov eax, edi
xor eax, 0x7573f753
mov dword [esi + 0x108], 0x11
cmp edx, eax
jae 0x60372a
mov eax, edi
xor eax, 0xa8c0898
mov edx, ecx
xor edx, eax
and eax, ecx
lea ecx, [edx + eax*2]
call fcn.0053d610
mov ecx, eax
mov edi, dword [esi + 8]
mov eax, edi
xor eax, 0xa8c089e
add eax, ecx
mov edx, edi
xor edx, 0xf573f75d
not eax
and eax, edx
mov edx, edi
xor edx, 0xa8c08a2
or eax, edx
not eax
mov dword [eax - 4], ecx
jmp 0x6032e1
add ecx, 2
mov dword [esi + 0x108], 0x11
call fcn.0053d610
mov edx, dword [esi + 0x60]
mov ecx, dword [esi + 0x58]
mov dword [ecx], eax
lea ecx, [edx + edx]
add ecx, 2
push ecx
push dword [esi + 0x74]
push eax
mov edi, edx
call fcn.0077cce0
add esp, 0xc
mov ebx, dword [esi + 4]
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0x88]
mov dword [edx + 0x14], edi
mov dword [edx + 0x18], eax
lea eax, [esi + 0x90]
mov dword [edx], eax
lea ecx, [esi + 0x40]
mov dword [edx + 0x1c], ecx
mov eax, dword [esi + 0x14]
cmp dword [esi + 0x54], eax
jbe 0x603329
mov ecx, dword [esi + 0x40]
mov edx, dword [esi + 0x50]
add edx, ecx
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], ebx
mov word [esi + 0x20], 0
mov dword [esi + 0x108], 0x12
lea eax, [esi + 0x20]
push eax
call fcn.00606b10
add esp, 4
cmp byte [0xb53330], 0
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x30]
lea edx, [esi + 0x20]
cmovne edx, eax
mov edi, dword [esi + 4]
cmp dword [esi + 0x34], edi
cmova edx, eax
lea eax, [edx + ecx*2]
mov ecx, dword [esi + 0x58]
push eax
call fcn.00606b30
add esp, 4
mov eax, dword [esi + 0x34]
mov ebx, dword [esi + 8]
mov ecx, ebx
xor ecx, 0xbeba4c7a
cmp dword [0xb221a8], ecx
movzx ecx, word [0xaabd4e]
mov dword [esi + 0x60], eax
jne 0x6033f8
mov eax, dword [esi + 0x10]
mov edx, eax
sub edx, ecx
mov ecx, ebx
xor ecx, 0x42f4
mov edi, edx
xor edi, ecx
and edx, ecx
add ecx, eax
mov eax, dword [esi + 0x60]
sub edi, ecx
lea ecx, [edi + edx*2]
mov edx, ebx
xor edx, 0x546d
lea edi, [edx + ecx]
neg edi
mov ebx, edx
xor ebx, edi
and edi, edx
lea edx, [ecx + ecx]
lea edi, [ebx + edi*2]
mov ebx, edi
xor ebx, edx
and edi, edx
lea edi, [ebx + edi*2]
mov edx, ecx
sub edx, edi
imul edx, edi
xor edx, edi
mov edi, edx
sub edi, ecx
imul edi, ecx
test di, dx
sete cl
jmp 0x603425
xor edx, edx
cmp dword [esi + 0xb4], 0xffffffff
setne dl
mov edi, ebx
xor ebx, 0xffff83bc
xor edi, 0x7c43
add edi, ebx
add edi, edx
sub ecx, dword [esi + 0x10]
test cx, di
setne cl
or cl, byte [0xb53330]
and cl, 1
mov byte [0xb53330], cl
cmp eax, dword [esi + 4]
jbe 0x6034c7
mov edi, dword [esi + 0x20]
lea ebx, [eax + eax]
add ebx, 2
mov eax, dword [esi + 8]
mov ecx, eax
xor ecx, 0xa8c0742
cmp ebx, ecx
jbe 0x60349b
mov ecx, eax
xor ecx, 0xcefab204
mov edx, eax
xor edx, 0xf573f741
add edx, ecx
mov ecx, eax
xor ecx, 0x31054dfb
add edx, ecx
mov ecx, dword [edi - 4]
add edx, edi
sub edx, ecx
inc edx
mov edi, eax
xor edi, 0xa8c089d
cmp edx, edi
jae 0x60372f
mov ebx, dword [esi + 0x60]
add ebx, ebx
xor eax, 0xa8c0898
mov edi, ebx
xor edi, eax
and eax, ebx
lea ebx, [edi + eax*2]
mov dword [esi + 0x10], ecx
jmp 0x60349e
mov dword [esi + 0x10], edi
mov eax, dword [0xb22254]
mov edi, dword [0xb22220]
sub edi, dword [esi + 0x18]
add edi, eax
mov dword [esi + 0x108], 0xffffffff
mov ecx, edi
call dword [0xb0836c]
mov ecx, dword [esi + 0x10]
mov edx, ebx
call edi
mov eax, dword [esi + 0x58]
movups xmm0, xmmword [eax]
movaps xmmword [esi + 0x90], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esi + 0xa0], xmm0
mov esp, dword [esi + 0xbc]
mov eax, dword [esi + 0x54]
cmp eax, dword [esi + 0x14]
jbe 0x603591
mov edi, dword [esi + 0x40]
lea ebx, [eax + 1]
mov ecx, dword [esi + 8]
xor ecx, 0xa8c0742
cmp ebx, ecx
ja 0x603514
test byte [0xb53280], 1
jne 0x603514
mov dword [esi + 0x10], edi
jmp 0x603568
mov ecx, dword [edi - 4]
mov ebx, dword [esi + 8]
mov edx, ebx
xor edx, 0xf573f741
add edx, edi
sub edx, ecx
mov edi, ebx
xor edi, 0xa8c089d
cmp edx, edi
jae 0x60373e
mov edi, eax
not edi
mov edx, ebx
xor edx, 0xf573f766
xor ebx, eax
and eax, edx
and edx, edi
xor ebx, 0xa8c0899
or eax, ebx
or edx, ebx
add edx, edx
sub eax, edx
add eax, 0xfffffffe
mov dword [esi + 0x108], 0xffffffff
mov ebx, eax
mov dword [esi + 0x10], ecx
mov eax, dword [0xb22254]
mov edi, dword [0xb22220]
sub edi, dword [esi + 0x18]
add edi, eax
mov dword [esi + 0x108], 0xffffffff
mov ecx, edi
call dword [0xb0836c]
mov ecx, dword [esi + 0x10]
mov edx, ebx
call edi
mov dword [esi + 0x108], 0x10
lea ecx, [esi + 0x90]
push dword [esi + 0x84]
call fcn.00604fa0
mov eax, dword [esi + 0xa4]
mov edx, dword [esi + 4]
cmp eax, edx
mov ecx, dword [esi + 8]
jbe 0x603682
add eax, eax
xor ecx, 0xc6f64426
mov edx, eax
sub edx, ecx
mov ebx, edx
xor ebx, 2
add ebx, ecx
mov edi, dword [esi + 0x90]
and edx, 2
lea edx, [ebx + edx*2]
mov ebx, dword [esi + 8]
mov ecx, ebx
xor ecx, 0xa8c0742
cmp edx, ecx
jbe 0x603650
mov ecx, dword [edi - 4]
mov dword [esi + 0x60], ecx
mov ecx, ebx
xor ecx, 0x39608a2d
mov dword [esi + 0x10], ecx
sub edi, ecx
mov edx, ebx
xor edx, 0xa8c08be
mov ecx, ebx
xor ecx, edi
mov ebx, edi
and ebx, edx
not edi
and edi, edx
xor ecx, 0xf573f741
or ebx, ecx
or edi, ecx
add ebx, dword [esi + 0x10]
not edi
lea ecx, [ebx + edi*2]
mov ebx, dword [esi + 0x60]
mov edi, dword [esi + 8]
sub ecx, ebx
mov edx, edi
xor edx, 0xa8c089d
cmp ecx, edx
jae 0x60374d
mov ecx, edi
xor ecx, 0xa8c0898
add eax, ecx
mov dword [esi + 0x10], eax
mov edi, ebx
jmp 0x603653
mov dword [esi + 0x10], edx
mov eax, dword [0xb22254]
mov ebx, dword [0xb22220]
sub ebx, dword [esi + 0x18]
add ebx, eax
mov dword [esi + 0x108], 0xffffffff
mov ecx, ebx
call dword [0xb0836c]
mov ecx, edi
mov edx, dword [esi + 0x10]
call ebx
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
mov eax, dword [esi + 0xf4]
cmp eax, edx
jbe 0x603710
mov edi, dword [esi + 0xe0]
mov ebx, ecx
lea edx, [eax + eax]
add edx, 2
xor ecx, 0xa8c0742
cmp edx, ecx
jbe 0x6036e2
mov ecx, dword [edi - 4]
mov edx, ebx
xor edx, 0xf573f741
add edx, edi
sub edx, ecx
mov edi, ebx
xor edi, 0xa8c089d
cmp edx, edi
jae 0x60375c
add eax, eax
xor ebx, 0xa8c0898
add ebx, eax
mov dword [esi + 0x108], 0xffffffff
mov dword [esi + 4], ebx
mov ebx, ecx
jmp 0x6036e7
mov ebx, edi
mov dword [esi + 4], edx
mov eax, dword [0xb22254]
mov edi, dword [0xb22220]
sub edi, dword [esi + 0x18]
add edi, eax
mov dword [esi + 0x108], 0xffffffff
mov ecx, edi
call dword [0xb0836c]
mov ecx, ebx
mov edx, dword [esi + 4]
call edi
mov eax, dword [esi + 0x100]
mov dword fs:[0], eax
mov eax, dword [esi + 0x84]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.00529890
mov dword [esi + 0x108], 4
call fcn.00748ef1
mov dword [esi + 0x108], 5
call fcn.00748ef1
mov dword [esi + 0x108], 6
call fcn.00748ef1
mov dword [esi + 0x108], 7
call fcn.00748ef1
nop dword [eax + eax]
push ebp
sub esp, 0x10
lea esi, [ebp - 0x10c]
mov ebp, dword [esi + 0xf8]
mov dword [esi + 0xfc], esp
mov ecx, dword [esi + 8]
lea eax, [ecx*4]
xor eax, 0x2a3022f4
xor ecx, 0xa8c08a9
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], eax
mov dword [esi + 0x108], 0xe
lea eax, [esi + 0x20]
push eax
call fcn.00605130
add esp, 4
mov dword [esi + 0x24], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x108], 0xf
lea ecx, [esi + 0xe0]
lea edx, [esi + 0x20]
call fcn.00606ad0
mov eax, 0x603162
add esp, 0x10
pop ebp
ret