Function at 0x8025c0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports
Terminate process

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x24
mov ebp, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov edi, dword [ebp + 0x18]
mov al, byte [ebx]
mov esi, dword [edi]
mov ecx, eax
add cl, 0xec
cmp cl, 0x27
jbe 0x8044ab
add al, 0x78
cmp al, 0x21
ja case.0x8044ae.235
movzx eax, al
jmp dword [eax*4 + 0xb59c84]
mov dword [esp + 8], edi
mov edi, ebx
mov ebx, dword [ebx + 8]
mov ebp, esi
xor edx, edx
xor eax, eax
jmp 0x80281b
mov ebp, dword [ebx + 0xc]
test byte [edi + 0x18], 0x28
je 0x8027b6
mov edx, fcn.00780f30
movzx ecx, byte [0xbb8287]
imul edx, edx
and edx, 3
cmp edx, 2
sete al
or al, 4
add al, 0x84
and al, 7
movzx eax, al
bt ecx, eax
jb 0x8027a3
mov al, byte [0xbb8287]
cmp edx, 2
mov ah, 1
sete cl
or cl, 4
add cl, 0x84
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb8287], ah
jne 0x802648
mov ecx, fcn.00780f30
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete dl
or dl, 4
add dl, 0x84
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x8026b2
cmp ecx, 2
movzx edx, byte [0xbb8287]
sete al
or al, 4
add al, 0x84
and al, 7
movzx eax, al
bt edx, eax
jae 0x802692
jmp 0x8027a3
cmp ecx, 2
movzx ecx, byte [0xbb8287]
sete al
or al, 4
add al, 0x84
and al, 7
movzx eax, al
bt ecx, eax
jb 0x80277c
mov eax, fcn.00780f30
xor ecx, ecx
mov ebx, edi
mov edi, esi
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [str.Da]
sete cl
or ecx, 0xf24f08ac
add ecx, 0x84
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [str.Da], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbb8274]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb8274], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb8278]
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb8278], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb827c]
lea esi, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb827c], eax
or edx, esi
not eax
mov esi, edi
mov edi, ebx
mov ebx, dword [esp + 0x3c]
imul eax, edx
mov dl, 1
xor dword [0xbb8280], eax
shl dl, cl
or byte [0xbb8287], dl
mov eax, fcn.00780f30
imul eax, eax
and eax, 3
cmp eax, 2
mov al, 0xfe
sete cl
or cl, 4
add cl, 0x84
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb8287], al
mov ecx, esi
mov edx, edi
push 0
push str.Da
call fcn.008051f0
add esp, 8
mov eax, dword [ebx + 0x10]
mov dword [esp + 8], edi
cmp byte [eax], 0x3b
jne 0x8027ce
mov dword [esp + 4], 0
mov edx, ebx
jmp 0x8027dd
mov ecx, dword [ebp + 8]
mov ebp, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov edx, ebx
mov dword [esp + 4], ecx
mov ecx, dword [ebp + 8]
mov ebx, dword [eax + 8]
cmp byte [esi + 0xc8], 2
mov dword [esp], ecx
jae 0x8027f5
mov ebp, esi
mov edi, edx
jmp 0x802814
mov edi, edx
mov ecx, esi
push eax
call fcn.008022f0
add esp, 4
mov eax, ebp
mov ebp, esi
lea edx, [edi + 0x2c]
mov ecx, esi
push eax
call fcn.008022f0
add esp, 4
mov edx, dword [esp + 4]
mov eax, dword [esp]
mov ecx, ebp
push edi
push dword [esp + 0xc]
push ebx
push eax
call fcn.00805aa0
add esp, 0x34
jmp 0x8044a6
mov eax, dword [ebx + 0x14]
mov dword [esp + 8], edi
mov edi, 0
mov dword [esp + 4], 0
test eax, eax
je 0x80284b
mov edi, dword [eax]
mov edx, dword [esp + 8]
mov ecx, 0x4001
mov ebx, dword [esi]
mov dword [esp + 0x18], eax
mov dword [esp], esi
and ecx, dword [edx + 0x18]
mov al, byte [ebx + 0x4e]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x3c]
mov byte [esp + 0xc], al
test byte [ecx + 7], 1
je 0x802885
mov eax, dword [ecx + 0x2c]
xor edx, edx
cmp byte [eax + 0x10], 0xa3
cmovne edx, eax
mov dword [esp + 4], edx
mov ebp, dword [ecx + 8]
mov ecx, ebp
call fcn.00783170
movzx esi, byte [esp + 0xc]
mov dword [esp + 0x14], eax
mov ecx, ebx
mov edx, ebp
push 0
push esi
push edi
call fcn.00794d80
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], ebp
jne 0x8028e5
mov eax, dword [esp]
mov edx, ebp
mov ecx, dword [eax]
push 0
push esi
mov esi, eax
push 0xfffffffffffffffe
call fcn.00794d80
add esp, 0xc
mov edi, dword [esp + 8]
mov ebp, eax
xor eax, eax
xor ebx, ebx
mov dword [esp + 0xc], 0
test ebp, ebp
sete al
setne bl
jmp 0x802f81
cmp dword [eax + 0x14], 0
mov esi, dword [esp]
mov ebx, dword [esp + 0x3c]
mov ebp, eax
setne byte [esp + 0xc]
test byte [eax + 5], 4
je 0x802a8c
or byte [ebx + 6], 4
cmp edi, 2
jne 0x802a76
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x18]
call fcn.00807650
test eax, eax
mov dword [ebx + 0x1c], eax
jns 0x802a8c
mov eax, 0x783f60
mov edx, 3
movzx ecx, byte [0xbb82db]
mov edi, dword [esp + 8]
sub edx, eax
mov eax, edx
xor eax, 0x783f60
sete al
or al, 2
movzx eax, al
bt ecx, eax
jb 0x802a63
mov al, byte [0xbb82db]
mov ecx, edx
mov ah, 1
xor ecx, 0x783f60
sete cl
or cl, 2
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb82db], ah
jne 0x802959
mov edx, 0x783f60
mov ecx, 3
movzx eax, al
sub ecx, edx
mov edx, ecx
xor edx, 0x783f60
sete dl
or dl, 2
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x8029c2
mov eax, ecx
movzx edx, byte [0xbb82db]
xor eax, 0x783f60
sete al
or al, 2
movzx eax, al
bt edx, eax
jae 0x8029a2
jmp 0x802a63
xor edx, edx
xor ecx, 0x783f60
movzx ecx, byte [0xbb82db]
sete dl
or edx, 0x5e6925ca
add edx, 0x40
mov eax, edx
and al, 7
movzx eax, al
bt ecx, eax
jb 0x802a3e
mov esi, str.yC_n1
xor eax, eax
mov edi, dword [esi]
mov ecx, eax
mov ebx, edx
inc eax
shl ebx, cl
xor cl, 0x1f
xor edi, edx
shr edx, cl
mov dword [esi], edi
or edx, ebx
not edi
add esi, 4
imul edx, edi
cmp eax, 0x12
jne 0x8029f0
mov eax, 0x783f60
mov ecx, 3
mov ebx, dword [esp + 0x3c]
sub ecx, eax
mov al, 1
xor ecx, 0x783f60
sete cl
or cl, 2
shl al, cl
or byte [0xbb82db], al
mov esi, dword [esp]
mov edi, dword [esp + 8]
mov eax, 0x783f60
mov ecx, 3
sub ecx, eax
mov al, 0xfe
xor ecx, 0x783f60
sete cl
or cl, 2
xor cl, 7
rol al, cl
and byte [0xbb82db], al
push str.yC_n1
push esi
call fcn.0078de60
add esp, 8
inc dword [edi + 0x14]
jmp 0x802a8c
mov eax, dword [ebp + 0x20]
mov ecx, 0x7800000
cmp byte [eax], 0x75
mov eax, fcn.00800000
cmove ecx, eax
mov dword [ebx + 0x1c], ecx
mov ecx, esi
mov edx, 0x1f
push 0
push dword [ebp + 0x20]
push 0
call fcn.008002d0
add esp, 0xc
test eax, eax
je 0x802ccc
cmp eax, 1
jne 0x802cbf
mov eax, 0x792950
mov edx, 3
movzx ecx, byte [0xbb8307]
mov edi, ebp
mov ebp, dword [esp + 8]
sub edx, eax
mov eax, edx
xor eax, 0x792950
sete al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x802cab
mov al, byte [0xbb8307]
mov ecx, edx
mov ah, 1
xor ecx, 0x792950
sete cl
or cl, 4
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb8307], ah
jne 0x802ae9
mov edx, 0x792950
mov ecx, 3
movzx eax, al
sub ecx, edx
mov edx, ecx
xor edx, 0x792950
sete dl
or dl, 4
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x802b52
mov eax, ecx
movzx edx, byte [0xbb8307]
xor eax, 0x792950
sete al
or al, 4
movzx eax, al
bt edx, eax
jae 0x802b32
jmp 0x802cab
xor ecx, 0x792950
movzx ecx, byte [0xbb8307]
sete al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x802c86
mov eax, 0x792950
mov edx, 3
xor ecx, ecx
sub edx, eax
mov eax, dword [0xbb82e0]
xor edx, 0x792950
sete cl
or ecx, 0x98ad0e60
add ecx, 0x20c
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbb82e0], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbb82e4]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb82e4], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb82e8]
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb82e8], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb82ec]
lea esi, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb82ec], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb82f0]
mov esi, eax
shl esi, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbb82f0], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb82f4]
mov esi, edx
shl esi, 5
xor eax, edx
shr edx, 0x1a
mov dword [0xbb82f4], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb82f8]
mov esi, eax
shl esi, 6
xor edx, eax
shr eax, 0x19
mov dword [0xbb82f8], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb82fc]
mov esi, edx
shl esi, 7
xor eax, edx
shr edx, 0x18
mov dword [0xbb82fc], eax
or edx, esi
not eax
mov esi, dword [esp]
imul eax, edx
mov dl, 1
xor dword [0xbb8300], eax
shl dl, cl
or byte [0xbb8307], dl
mov eax, 0x792950
mov ecx, 3
sub ecx, eax
mov al, 0xfe
xor ecx, 0x792950
sete cl
or cl, 4
xor cl, 7
rol al, cl
and byte [0xbb8307], al
push dword [edi + 0x20]
push 0xbb82e0
push esi
call fcn.0078de60
add esp, 0xc
inc dword [ebp + 0x14]
mov byte [ebx], 0x77
mov eax, 1
jmp 0x8044a3
mov eax, dword [ebp + 4]
test eax, 0x2800
je 0x802cdd
or byte [ebx + 6], 8
mov eax, dword [ebp + 4]
mov edi, dword [esp + 8]
test eax, 0x800
mov eax, dword [edi + 0x18]
jne 0x802f20
test al, 0x2a
je 0x802f2f
mov edx, fcn.007a8280
xor eax, eax
movzx ebx, byte [0xbb8333]
not edx
and edx, 1
mov ecx, edx
add ecx, fcn.007a8280
sete al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2 + 4]
and al, 7
movzx eax, al
bt ebx, eax
jb 0x802f0b
mov al, byte [0xbb8333]
mov esi, edx
xor ecx, ecx
mov ah, 1
add esi, fcn.007a8280
sete cl
mov ebx, ecx
xor ebx, 5
lea ecx, [ebx + ecx*2 + 4]
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb8333], ah
jne 0x802d31
mov ecx, fcn.007a8280
xor edx, edx
movzx eax, al
not ecx
and ecx, 1
mov esi, ecx
add esi, fcn.007a8280
sete dl
mov ebx, edx
xor ebx, 5
lea edx, [ebx + edx*2 + 4]
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x802dbd
mov esi, dword [esp]
mov edx, ecx
xor eax, eax
movzx ebx, byte [0xbb8333]
add edx, fcn.007a8280
sete al
mov edx, eax
xor edx, 5
lea eax, [edx + eax*2 + 4]
and al, 7
movzx eax, al
bt ebx, eax
jae 0x802d91
jmp 0x802f0b
xor eax, eax
add ecx, fcn.007a8280
movzx edx, byte [0xbb8333]
mov esi, dword [esp]
sete al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2 + 4]
and al, 7
movzx eax, al
bt edx, eax
jb 0x802ede
mov eax, fcn.007a8280
xor ecx, ecx
not eax
and eax, 1
add eax, fcn.007a8280
sete cl
mov eax, ecx
xor eax, 0x1d5acf0d
lea ecx, [eax + ecx*2 + 0x164]
mov eax, dword [0xbb8310]
xor eax, ecx
mov dword [0xbb8310], eax
not eax
mov edx, dword [0xbb8314]
imul eax, ecx
and cl, 7
lea esi, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbb8314], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb8318]
lea esi, [edx*4]
xor eax, edx
shr edx, 0x1d
mov dword [0xbb8318], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb831c]
lea esi, [eax*8]
xor edx, eax
shr eax, 0x1c
mov dword [0xbb831c], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb8320]
mov esi, edx
shl esi, 4
xor eax, edx
shr edx, 0x1b
mov dword [0xbb8320], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb8324]
mov esi, eax
shl esi, 5
xor edx, eax
shr eax, 0x1a
mov dword [0xbb8324], edx
or eax, esi
not edx
mov ebx, dword [0xbb8328]
imul edx, eax
mov esi, edx
shl esi, 6
xor ebx, edx
shr edx, 0x19
mov dword [0xbb8328], ebx
or edx, esi
not ebx
mov esi, dword [esp]
imul ebx, edx
mov dl, 1
xor dword [0xbb832c], ebx
shl dl, cl
or byte [0xbb8333], dl
mov eax, fcn.007a8280
xor ecx, ecx
not eax
and eax, 1
add eax, fcn.007a8280
sete cl
mov eax, ecx
xor eax, 5
lea ecx, [eax + ecx*2 + 4]
mov al, 0xfe
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb8333], al
mov ecx, esi
mov edx, edi
push 0
push 0xbb8310
call fcn.008051f0
add esp, 8
jmp 0x802f2f
and al, 0x2e
mov byte [ebx + 2], al
test byte [edi + 0x1a], 4
je 0x802f2f
or byte [ebx + 7], 0x40
mov cl, byte [esp + 0xc]
xor eax, eax
mov al, cl
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 4]
test eax, 0x40000
je 0x802f5e
cmp byte [esi + 0x12], 0
jne 0x802f5e
mov ecx, dword [esi]
test byte [ecx + 0x18], 0x20
jne 0x802f5e
mov eax, 1
xor ebp, ebp
xor ebx, ebx
jmp 0x802f81
xor ebx, ebx
test eax, 0x280000
je 0x802f7f
cmp byte [esi + 0xc8], 1
ja 0x802f7f
mov edx, dword [esp + 0x3c]
mov ecx, esi
push ebp
call fcn.007fa520
add esp, 4
xor eax, eax
cmp byte [esi + 0xc8], 1
ja 0x803e51
test ebp, ebp
je 0x80320b
cmp dword [esp + 4], 0
je 0x80320b
mov ecx, dword [ebp + 0x18]
test ecx, ecx
jne 0x80320b
mov edx, fcn.007a85c0
movzx ecx, byte [0xbb8373]
mov ebx, dword [esp + 0x10]
imul edx, edx
and edx, 3
cmp edx, 1
seta al
not al
add al, 0x10
and al, 7
movzx eax, al
bt ecx, eax
jb 0x8031f3
mov al, byte [0xbb8373]
cmp edx, 1
mov ah, 1
seta cl
not cl
add cl, 0x10
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb8373], ah
jne 0x802fdf
mov ecx, fcn.007a85c0
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 1
seta dl
not dl
add dl, 0x10
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x803047
cmp ecx, 1
movzx edx, byte [0xbb8373]
seta al
not al
add al, 0x10
and al, 7
movzx eax, al
bt edx, eax
jae 0x803027
jmp 0x8031f3
cmp ecx, 1
movzx ecx, byte [0xbb8373]
seta al
not al
add al, 0x10
and al, 7
movzx eax, al
bt ecx, eax
jb 0x8031cd
mov eax, fcn.007a85c0
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 1
mov eax, dword [0xbb8340]
seta cl
xor ecx, 0xdf78e577
add ecx, 0x1010
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbb8340], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbb8344]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb8344], eax
or esi, edx
not eax
mov edx, dword [0xbb8348]
imul eax, esi
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb8348], edx
or esi, eax
not edx
mov eax, dword [0xbb834c]
imul edx, esi
lea esi, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb834c], eax
or esi, edx
not eax
mov edx, dword [0xbb8350]
imul eax, esi
mov esi, eax
shl esi, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbb8350], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb8354]
mov esi, edx
shl esi, 5
xor eax, edx
shr edx, 0x1a
mov dword [0xbb8354], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb8358]
mov esi, eax
shl esi, 6
xor edx, eax
shr eax, 0x19
mov dword [0xbb8358], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb835c]
mov esi, edx
shl esi, 7
xor eax, edx
shr edx, 0x18
mov dword [0xbb835c], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [str._me]
mov esi, eax
shl esi, 8
xor edx, eax
shr eax, 0x17
mov dword [str._me], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb8364]
mov esi, edx
shl esi, 9
xor eax, edx
shr edx, 0x16
mov dword [0xbb8364], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb8368]
mov esi, eax
shl esi, 0xa
xor edx, eax
shr eax, 0x15
mov dword [0xbb8368], edx
or eax, esi
not edx
mov esi, dword [esp]
imul edx, eax
xor dword [0xbb836c], edx
mov dl, 1
shl dl, cl
or byte [0xbb8373], dl
mov eax, fcn.007a85c0
imul eax, eax
and eax, 3
cmp eax, 1
mov al, 0xfe
seta cl
not cl
add cl, 0x10
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb8373], al
push ebx
push dword [esp + 0x18]
push 0xbb8340
push esi
call fcn.0078de60
add esp, 0x10
jmp 0x803b18
cmp dword [esp + 0xc], 0
je 0x8036db
mov ecx, dword [edi + 0x18]
mov edx, dword [ebp + 4]
test cl, 1
je 0x80324c
cmp dword [esp + 4], 0
jne 0x803235
mov esi, edx
and esi, 0x10000
mov esi, dword [esp]
jne 0x80324c
cmp dword [esp + 4], 0
je 0x8036db
and ecx, 0x4000
jne 0x8036db
mov edi, fcn.007a3ef0
mov ebx, fcn.007a3ef0
xor eax, eax
mov ebp, edx
movzx edx, byte [0xbb837f]
or edi, 2
xor ebx, 2
mov ecx, edi
add ecx, ebx
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2 + 4]
and al, 7
movzx eax, al
bt edx, eax
jb 0x8033a6
mov al, byte [0xbb837f]
mov esi, edi
xor edx, edx
add esi, ebx
sete dl
mov ecx, edx
not ecx
lea ecx, [edx + ecx*2 + 4]
mov dl, 1
and cl, 7
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbb837f], dl
jne 0x803289
mov ecx, fcn.007a3ef0
mov edi, fcn.007a3ef0
xor edx, edx
movzx eax, al
or ecx, 2
xor edi, 2
mov esi, ecx
add esi, edi
sete dl
mov ebx, edx
not ebx
lea edx, [edx + ebx*2 + 4]
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x803309
mov edx, ecx
xor eax, eax
movzx esi, byte [0xbb837f]
add edx, edi
sete al
mov edx, eax
not edx
lea eax, [eax + edx*2 + 4]
and al, 7
movzx eax, al
bt esi, eax
jae 0x8032e2
jmp 0x8033a6
xor eax, eax
add ecx, edi
movzx edx, byte [0xbb837f]
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2 + 4]
and al, 7
movzx eax, al
bt edx, eax
jb 0x803377
mov ecx, fcn.007a3ef0
mov edx, fcn.007a3ef0
xor eax, eax
mov esi, dword [0xbb8374]
xor edx, 2
or ecx, 2
add ecx, edx
mov dl, 1
sete al
mov ecx, eax
not ecx
and ecx, 0x40b
lea ecx, [eax + ecx*2 + 0x263c2174]
xor esi, ecx
mov dword [0xbb8374], esi
not esi
imul esi, ecx
and cl, 7
shl dl, cl
xor dword [0xbb8378], esi
or byte [0xbb837f], dl
mov eax, fcn.007a3ef0
mov ecx, fcn.007a3ef0
xor edx, edx
xor ecx, 2
or eax, 2
add eax, ecx
sete dl
mov eax, edx
not eax
lea ecx, [edx + eax*2 + 4]
mov al, 0xfe
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb837f], al
mov esi, fcn.0081cc20
xor eax, eax
and esi, 1
inc esi
mov ecx, esi
xor ecx, fcn.0081cc20
movzx ecx, byte [0xbb838f]
setne al
bt ecx, eax
jb 0x8034c5
mov al, byte [0xbb838f]
mov ecx, esi
mov dl, 1
xor ecx, fcn.0081cc20
setne cl
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbb838f], dl
jne 0x8033d1
mov ecx, fcn.0081cc20
movzx eax, al
and ecx, 1
inc ecx
mov edx, ecx
xor edx, fcn.0081cc20
setne dl
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x80342f
mov edx, ecx
xor eax, eax
xor edx, fcn.0081cc20
movzx edx, byte [0xbb838f]
setne al
bt edx, eax
jae 0x803411
jmp 0x8034c5
xor eax, eax
xor ecx, fcn.0081cc20
movzx ecx, byte [0xbb838f]
setne al
bt ecx, eax
jb 0x8034a7
mov eax, fcn.0081cc20
xor ecx, ecx
and eax, 1
inc eax
xor eax, fcn.0081cc20
mov eax, dword [0xbb8380]
sete cl
xor ecx, 0xd6a0b601
or ecx, 0x80
xor eax, ecx
and cl, 1
mov dword [0xbb8380], eax
not eax
mov edx, dword [0xbb8384]
imul eax, eax, 0xd6a0b681
lea esi, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbb8384], edx
or esi, eax
not edx
mov al, 1
imul edx, esi
shl al, cl
xor dword [0xbb8388], edx
or byte [0xbb838f], al
mov eax, fcn.0081cc20
and eax, 1
inc eax
xor eax, fcn.0081cc20
mov al, 0xfe
setne cl
xor cl, 7
rol al, cl
and byte [0xbb838f], al
mov edi, fcn.007a24d0
xor eax, eax
movzx edx, byte [0xbb83b3]
mov esi, dword [esp]
imul edi, edi
and edi, 3
cmp edi, 2
sete al
mov ecx, eax
xor ecx, 3
lea eax, [ecx + eax*2]
bt edx, eax
jb 0x8036a1
mov al, byte [0xbb83b3]
xor ecx, ecx
cmp edi, 2
sete cl
mov edx, ecx
xor edx, 3
lea ecx, [edx + ecx*2]
mov dl, 1
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbb83b3], dl
jne 0x8034f8
mov ecx, fcn.007a24d0
xor edx, edx
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete dl
mov ebx, edx
xor ebx, 3
lea edx, [ebx + edx*2]
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x803565
xor eax, eax
cmp ecx, 2
movzx edi, byte [0xbb83b3]
sete al
mov edx, eax
xor edx, 3
lea eax, [edx + eax*2]
bt edi, eax
jae 0x803544
jmp 0x8036a1
xor eax, eax
cmp ecx, 2
movzx edx, byte [0xbb83b3]
sete al
mov ecx, eax
xor ecx, 3
lea eax, [ecx + eax*2]
bt edx, eax
jb 0x803679
mov eax, fcn.007a24d0
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sete cl
mov eax, ecx
xor eax, 0x2fb5730b
lea ecx, [eax + ecx*2 + 0x11a0]
mov eax, dword [0xbb8390]
xor eax, ecx
mov dword [0xbb8390], eax
not eax
mov edx, dword [0xbb8394]
imul eax, ecx
and cl, 7
lea esi, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbb8394], edx
or esi, eax
not edx
mov eax, dword [0xbb8398]
imul edx, esi
lea esi, [edx*4]
xor eax, edx
shr edx, 0x1d
mov dword [0xbb8398], eax
or esi, edx
not eax
mov edx, dword [0xbb839c]
imul eax, esi
lea esi, [eax*8]
xor edx, eax
shr eax, 0x1c
mov dword [0xbb839c], edx
or esi, eax
not edx
mov eax, dword [0xbb83a0]
imul edx, esi
mov esi, edx
shl esi, 4
xor eax, edx
shr edx, 0x1b
mov dword [0xbb83a0], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb83a4]
mov esi, eax
shl esi, 5
xor edx, eax
shr eax, 0x1a
mov dword [0xbb83a4], edx
or eax, esi
not edx
mov edi, dword [0xbb83a8]
imul edx, eax
mov esi, edx
shl esi, 6
xor edi, edx
shr edx, 0x19
mov dword [0xbb83a8], edi
or edx, esi
not edi
mov esi, dword [esp]
imul edi, edx
mov dl, 1
xor dword [0xbb83ac], edi
shl dl, cl
or byte [0xbb83b3], dl
mov eax, fcn.007a24d0
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 2
sete cl
mov eax, ecx
xor eax, 3
lea ecx, [eax + ecx*2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0xbb83b3], al
and ebp, 0x10000
mov eax, 0xbb8374
mov ecx, 0xbb8380
or dword [esp + 4], ebp
cmovne ecx, eax
push dword [esp + 0x10]
push dword [esp + 0x18]
push ecx
push 0xbb8390
push esi
call fcn.0078de60
add esp, 0x14
mov eax, dword [esp + 8]
inc dword [eax + 0x14]
jmp 0x803e3a
test eax, eax
je 0x803883
mov eax, dword [esi]
cmp byte [eax + 0xa5], 0
jne 0x803883
mov edx, fcn.0081e830
movzx ecx, byte [0xbb83db]
mov eax, fcn.0081e830
mov ebx, dword [esp + 0x10]
and edx, 1
xor edx, eax
xor eax, eax
cmp edx, 0xffffffff
sete al
bt ecx, eax
jb 0x803874
mov al, byte [0xbb83db]
cmp edx, 0xffffffff
mov ah, 1
sete cl
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb83db], ah
jne 0x803722
mov ecx, fcn.0081e830
mov edx, fcn.0081e830
movzx eax, al
and ecx, 1
xor ecx, edx
cmp ecx, 0xffffffff
sete dl
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x803777
movzx edx, byte [0xbb83db]
xor eax, eax
cmp ecx, 0xffffffff
sete al
bt edx, eax
jae 0x80375e
jmp 0x803874
movzx edx, byte [0xbb83db]
xor eax, eax
cmp ecx, 0xffffffff
sete al
bt edx, eax
jb 0x803852
mov edx, fcn.0081e830
mov eax, fcn.0081e830
xor ecx, ecx
and edx, 1
xor edx, eax
mov eax, dword [0xbb83c0]
cmp edx, 0xffffffff
sete cl
or ecx, 0x587a2008
add ecx, 0xe88
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbb83c0], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbb83c4]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb83c4], eax
or esi, edx
not eax
mov edx, dword [0xbb83c8]
imul eax, esi
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb83c8], edx
or esi, eax
not edx
mov eax, dword [0xbb83cc]
imul edx, esi
lea esi, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb83cc], eax
or esi, edx
not eax
mov edx, dword [0xbb83d0]
imul eax, esi
mov esi, eax
shl esi, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbb83d0], edx
or eax, esi
not edx
mov esi, dword [esp]
imul edx, eax
xor dword [0xbb83d4], edx
mov dl, 1
shl dl, cl
or byte [0xbb83db], dl
mov ecx, fcn.0081e830
mov eax, fcn.0081e830
and ecx, 1
xor ecx, eax
mov al, 0xfe
cmp ecx, 0xffffffff
sete cl
xor cl, 7
rol al, cl
and byte [0xbb83db], al
push ebx
push dword [esp + 0x18]
push 0xbb83c0
jmp 0x8031fd
test ebx, ebx
je 0x803b73
mov edx, fcn.007c4f40
mov dword [esp + 0x1c], ebp
xor eax, eax
not edx
movzx ebx, byte [0xbb8413]
mov ebp, dword [esp + 0x10]
and edx, 1
mov ecx, edx
add ecx, fcn.007c4f40
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
bt ebx, eax
jb 0x803b01
mov al, byte [0xbb8413]
mov esi, edx
xor ecx, ecx
mov ah, 1
add esi, fcn.007c4f40
sete cl
mov ebx, ecx
xor ebx, 1
lea ecx, [ecx + ebx*2]
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb8413], ah
jne 0x8038c7
mov ecx, fcn.007c4f40
xor edx, edx
movzx eax, al
not ecx
and ecx, 1
mov esi, ecx
add esi, fcn.007c4f40
sete dl
mov ebx, edx
xor ebx, 1
lea edx, [edx + ebx*2]
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x803945
mov esi, dword [esp]
mov edx, ecx
xor eax, eax
movzx ebx, byte [0xbb8413]
add edx, fcn.007c4f40
sete al
mov edx, eax
xor edx, 1
lea eax, [eax + edx*2]
bt ebx, eax
jae 0x80391f
jmp 0x803b01
xor eax, eax
add ecx, fcn.007c4f40
movzx edx, byte [0xbb8413]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
bt edx, eax
jb 0x803ad5
mov ecx, fcn.007c4f40
xor eax, eax
not ecx
and ecx, 1
add ecx, fcn.007c4f40
sete al
mov ecx, eax
not ecx
and ecx, 0x249
lea ecx, [eax + ecx*2 - 0x3b584350]
mov eax, dword [0xbb83e0]
mov edx, ecx
shr edx, 0x1f
or edx, ecx
xor eax, ecx
and cl, 7
mov dword [0xbb83e0], eax
not eax
imul edx, eax
mov eax, dword [0xbb83e4]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb83e4], eax
or esi, edx
not eax
mov edx, dword [0xbb83e8]
imul eax, esi
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb83e8], edx
or esi, eax
not edx
mov eax, dword [0xbb83ec]
imul edx, esi
lea esi, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb83ec], eax
or esi, edx
not eax
mov edx, dword [0xbb83f0]
imul eax, esi
mov esi, eax
shl esi, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbb83f0], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb83f4]
mov esi, edx
shl esi, 5
xor eax, edx
shr edx, 0x1a
mov dword [0xbb83f4], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb83f8]
mov esi, eax
shl esi, 6
xor edx, eax
shr eax, 0x19
mov dword [0xbb83f8], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb83fc]
mov esi, edx
shl esi, 7
xor eax, edx
shr edx, 0x18
mov dword [0xbb83fc], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb8400]
mov esi, eax
shl esi, 8
xor edx, eax
shr eax, 0x17
mov dword [0xbb8400], edx
or eax, esi
not edx
mov ebx, dword [0xbb8404]
imul edx, eax
mov esi, edx
shl esi, 9
xor ebx, edx
shr edx, 0x16
mov dword [0xbb8404], ebx
or edx, esi
not ebx
imul ebx, edx
mov edx, dword [0xbb8408]
mov esi, ebx
shl esi, 0xa
xor edx, ebx
shr ebx, 0x15
mov dword [0xbb8408], edx
or ebx, esi
not edx
imul edx, ebx
xor dword [0xbb840c], edx
mov dl, 1
shl dl, cl
or byte [0xbb8413], dl
mov eax, fcn.007c4f40
xor ecx, ecx
not eax
and eax, 1
add eax, fcn.007c4f40
sete cl
mov eax, ecx
xor eax, 1
lea ecx, [ecx + eax*2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0xbb8413], al
mov esi, dword [esp]
push ebp
push dword [esp + 0x18]
push 0xbb83e0
push esi
call fcn.0078de60
add esp, 0x10
mov ebp, dword [esp + 0x1c]
inc dword [edi + 0x14]
cmp dword [esp + 0xc], 0
je 0x803e3a
xor eax, eax
cmp dword [esp + 4], 0
sete al
xor eax, 0xffffbfff
and dword [edi + 0x18], eax
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 0x18]
mov ecx, ebx
call fcn.007fd300
cmp dword [esp + 4], 0
je 0x803eca
mov eax, ebp
mov ebp, dword [edi + 0x1c]
cmp byte [esi + 0xc8], 1
ja 0x803e95
test ebp, ebp
jne 0x803e83
xor edx, edx
jmp 0x803e86
cmp dword [esp + 0xc], 0
mov eax, dword [esp + 0x3c]
jne 0x803b26
test byte [eax + 7], 1
je 0x803e3a
mov edx, fcn.007abe90
xor eax, eax
movzx ebx, byte [0xbb8457]
imul edx, edx
and edx, 3
cmp edx, 2
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
or al, 4
movzx eax, al
bt ebx, eax
jb 0x803e21
mov al, byte [0xbb8457]
xor ecx, ecx
cmp edx, 2
mov ah, 1
sete cl
mov ebx, ecx
xor ebx, 1
lea ebx, [ecx + ebx*2]
mov cl, 7
or bl, 4
sub cl, bl
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb8457], ah
jne 0x803bbd
mov ecx, fcn.007abe90
xor edx, edx
mov ah, 7
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete dl
mov ebx, edx
xor ebx, 1
lea edx, [edx + ebx*2]
or dl, 4
sub ah, dl
movzx edx, ah
movzx eax, al
bt eax, edx
jae 0x803c3e
mov esi, dword [esp]
mov edi, dword [esp + 8]
xor eax, eax
cmp ecx, 2
movzx ebx, byte [0xbb8457]
sete al
mov edx, eax
xor edx, 1
lea eax, [eax + edx*2]
or al, 4
movzx eax, al
bt ebx, eax
jae 0x803c18
jmp 0x803e21
xor eax, eax
cmp ecx, 2
movzx edx, byte [0xbb8457]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x803def
mov ecx, fcn.007abe90
xor eax, eax
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete al
mov ecx, eax
not ecx
and ecx, 0x201
lea ecx, [eax + ecx*2 + 0x620075ac]
mov eax, dword [0xbb8420]
mov edx, ecx
shr edx, 0x1f
or edx, ecx
xor eax, ecx
and cl, 7
mov dword [0xbb8420], eax
not eax
imul edx, eax
mov eax, dword [0xbb8424]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb8424], eax
or esi, edx
not eax
mov edx, dword [0xbb8428]
imul eax, esi
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb8428], edx
or esi, eax
not edx
mov eax, dword [0xbb842c]
imul edx, esi
lea esi, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb842c], eax
or esi, edx
not eax
mov edx, dword [0xbb8430]
imul eax, esi
mov esi, eax
shl esi, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbb8430], edx
or eax, esi
not edx
mov ebx, dword [0xbb8434]
imul edx, eax
mov esi, edx
shl esi, 5
xor ebx, edx
shr edx, 0x1a
mov dword [0xbb8434], ebx
or edx, esi
not ebx
imul ebx, edx
mov edx, dword [0xbb8438]
mov esi, ebx
shl esi, 6
xor edx, ebx
shr ebx, 0x19
mov dword [0xbb8438], edx
or ebx, esi
not edx
mov edi, dword [0xbb843c]
imul edx, ebx
mov esi, edx
shl esi, 7
xor edi, edx
shr edx, 0x18
mov dword [0xbb843c], edi
or edx, esi
not edi
imul edi, edx
mov edx, dword [0xbb8440]
mov esi, edi
shl esi, 8
xor edx, edi
shr edi, 0x17
mov dword [0xbb8440], edx
or edi, esi
not edx
mov ebx, dword [0xbb8444]
imul edx, edi
mov esi, edx
shl esi, 9
xor ebx, edx
shr edx, 0x16
mov dword [0xbb8444], ebx
or edx, esi
not ebx
imul ebx, edx
mov edx, dword [0xbb8448]
mov esi, ebx
shl esi, 0xa
xor edx, ebx
shr ebx, 0x15
mov dword [0xbb8448], edx
or ebx, esi
not edx
mov edi, dword [0xbb844c]
imul edx, ebx
mov esi, edx
shl esi, 0xb
xor edi, edx
shr edx, 0x14
mov dword [0xbb844c], edi
or edx, esi
not edi
imul edi, edx
mov dl, 1
xor dword [0xbb8450], edi
shl dl, cl
or byte [0xbb8457], dl
mov eax, fcn.007abe90
xor ecx, ecx
mov dl, 0xfe
imul eax, eax
and eax, 3
cmp eax, 2
sete cl
mov eax, ecx
xor eax, 1
lea eax, [ecx + eax*2]
mov cl, 7
or al, 4
sub cl, al
rol dl, cl
and byte [0xbb8457], dl
mov esi, dword [esp]
mov edi, dword [esp + 8]
push dword [esp + 0x10]
push dword [esp + 0x18]
push 0xbb8420
push esi
call fcn.0078de60
add esp, 0x10
inc dword [edi + 0x14]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x18]
call fcn.007fd300
mov eax, 1
jmp 0x8044a3
mov eax, dword [esp + 0x3c]
test byte [eax + 7], 1
jne 0x803b38
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 0x18]
mov ecx, ebx
call fcn.007fd300
cmp dword [esp + 0xc], 0
jne 0x803b47
mov eax, 1
jmp 0x8044a3
mov edx, dword [ebp + 0x48]
mov ecx, esi
push eax
push dword [esp + 8]
call fcn.008076f0
add esp, 8
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0x38]
mov edx, dword [ebx + 8]
mov ecx, esi
call fcn.007fd300
mov edx, dword [ebx + 0xc]
mov ecx, esi
call fcn.007fd300
mov edx, dword [ebx + 0x28]
mov ecx, esi
call fcn.007fd1d0
mov ecx, ebp
mov edx, ebx
call fcn.007ffef0
or byte [edi + 0x19], 0x80
jmp 0x803f21
mov eax, dword [esp + 0x3c]
mov byte [eax], 0xa5
mov byte [eax + 2], 0
test byte [eax + 7], 1
je 0x803eec
mov eax, dword [esp + 0x3c]
mov ecx, ebx
mov eax, dword [eax + 0x2c]
mov edx, dword [eax + 0x28]
call fcn.007fd1d0
mov ebx, dword [esp + 0x3c]
mov esi, edi
mov edx, dword [esi + 4]
mov ecx, ebx
call fcn.00807de0
test eax, eax
jne 0x803f0c
inc byte [ebx + 2]
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x803ef2
jmp 0x803f21
test ebp, ebp
je 0x803f21
mov eax, 0x1000
and eax, dword [ebp + 4]
or eax, dword [esi + 0x18]
or eax, 0x10
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x20]
or dword [edi + 0x18], eax
mov eax, 1
jmp 0x8044a3
test byte [ebx + 5], 8
je case.0x8044ae.235
mov eax, dword [edi + 0x10]
test byte [edi + 0x18], 0x2e
mov dword [esp + 4], eax
je 0x8040b5
mov edx, fcn.00782f40
movzx ecx, byte [0xbb8467]
and edx, 1
inc edx
mov eax, edx
xor eax, fcn.00782f40
sete al
not al
add al, 0x70
and al, 7
movzx eax, al
bt ecx, eax
jb 0x8040a0
mov al, byte [0xbb8467]
mov ecx, edx
mov ah, 1
xor ecx, fcn.00782f40
sete cl
not cl
add cl, 0x70
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb8467], ah
jne 0x803f7e
mov ecx, fcn.00782f40
movzx eax, al
and ecx, 1
inc ecx
mov edx, ecx
xor edx, fcn.00782f40
sete dl
not dl
add dl, 0x70
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x803ff2
mov eax, ecx
movzx edx, byte [0xbb8467]
xor eax, fcn.00782f40
sete al
not al
add al, 0x70
and al, 7
movzx eax, al
bt edx, eax
jae 0x803fce
jmp 0x8040a0
xor ecx, fcn.00782f40
movzx ecx, byte [0xbb8467]
sete al
not al
add al, 0x70
and al, 7
movzx eax, al
bt ecx, eax
jb 0x80407a
mov eax, fcn.00782f40
xor ecx, ecx
mov ebp, edi
mov edi, esi
and eax, 1
inc eax
xor eax, fcn.00782f40
mov eax, dword [0xbb8458]
sete cl
xor ecx, 0x1c5202c7
add ecx, 0xa70
xor eax, ecx
mov dword [0xbb8458], eax
not eax
mov edx, dword [0xbb845c]
imul eax, ecx
and cl, 7
lea esi, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbb845c], edx
or esi, eax
not edx
mov al, 1
imul edx, esi
mov esi, edi
mov edi, ebp
mov ebp, dword [esp + 0x38]
shl al, cl
xor dword [0xbb8460], edx
or byte [0xbb8467], al
mov eax, fcn.00782f40
and eax, 1
inc eax
xor eax, fcn.00782f40
mov al, 0xfe
sete cl
not cl
add cl, 0x70
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb8467], al
mov ecx, esi
mov edx, edi
push dword [esp + 0x3c]
push 0xbb8458
call fcn.008051f0
add esp, 8
mov ebx, dword [esp + 0x3c]
mov ecx, ebp
mov edx, dword [ebx + 0x14]
call fcn.007fd280
mov eax, dword [esp + 4]
cmp eax, dword [edi + 0x10]
je case.0x8044ae.235
or byte [ebx + 4], 0x20
or byte [edi + 0x18], 0x40
jmp case.0x8044ae.235
test byte [edi + 0x18], 0x2e
je case.0x8044ae.235
mov edx, fcn.007bc560
xor eax, eax
movzx ebp, byte [0xbb8477]
imul edx, edx
and edx, 3
cmp edx, 1
seta al
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
and al, 7
movzx eax, al
bt ebp, eax
jb 0x80424f
mov al, byte [0xbb8477]
mov ebp, ebx
xor ecx, ecx
cmp edx, 1
mov ah, 1
seta cl
mov ebx, ecx
not ebx
lea ecx, [ebx + ecx*2]
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb8477], ah
jne 0x80411d
mov ecx, fcn.007bc560
xor edx, edx
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 1
seta dl
mov ebx, edx
not ebx
lea edx, [ebx + edx*2]
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x804194
mov ebx, ebp
xor eax, eax
cmp ecx, 1
movzx ebp, byte [0xbb8477]
seta al
mov edx, eax
not edx
lea eax, [edx + eax*2]
and al, 7
movzx eax, al
bt ebp, eax
jae 0x80416f
jmp 0x80424f
xor eax, eax
cmp ecx, 1
movzx edx, byte [0xbb8477]
mov ebx, ebp
seta al
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
and al, 7
movzx eax, al
bt edx, eax
jb 0x804225
mov eax, fcn.007bc560
xor ecx, ecx
mov ebx, edi
mov edi, esi
imul eax, eax
and eax, 3
cmp eax, 1
seta cl
mov eax, ecx
xor eax, 0xf6cd0107
lea ecx, [eax + ecx*2 + 0x1120]
mov eax, dword [0xbb8468]
mov edx, ecx
shr edx, 0x1f
or edx, ecx
xor eax, ecx
and cl, 7
mov dword [0xbb8468], eax
not eax
imul edx, eax
mov eax, dword [0xbb846c]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb846c], eax
or esi, edx
not eax
mov dl, 1
imul eax, esi
shl dl, cl
mov esi, edi
mov edi, ebx
mov ebx, ebp
xor dword [0xbb8470], eax
or byte [0xbb8477], dl
mov eax, fcn.007bc560
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 1
seta cl
mov eax, ecx
not eax
lea ecx, [eax + ecx*2]
mov al, 0xfe
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb8477], al
mov ecx, esi
mov edx, edi
push ebx
push 0xbb8468
call fcn.008051f0
jmp 0x804488
mov ecx, dword [ebx + 0x10]
call fcn.007fcf70
cmp byte [eax], 0x3b
jne case.0x8044ae.208
mov edi, eax
push eax
push ebp
call fcn.008025c0
add esp, 8
mov ecx, eax
mov eax, 2
cmp ecx, 2
je 0x8044a3
cmp byte [edi], 0xa7
jne case.0x8044ae.208
mov al, byte [ebx]
mov byte [ebx + 2], al
mov byte [ebx], 0xac
xor eax, eax
jmp 0x8044a3
mov eax, dword [esi]
cmp byte [eax + 0x51], 0
jne case.0x8044ae.235
mov ecx, dword [ebx + 0xc]
call fcn.007fb610
cmp byte [ebx], 0x30
mov edi, eax
jne 0x8042cf
mov ebx, dword [ebx + 0x14]
mov ecx, dword [ebx + 4]
call fcn.007fb610
cmp eax, edi
jne 0x8042d9
add ebx, 0x18
jmp 0x8042d2
add ebx, 0x10
mov ecx, dword [ebx]
call fcn.007fb610
cmp edi, eax
je case.0x8044ae.235
mov eax, fcn.008082f0
mov edx, 3
movzx ecx, byte [0xbb8497]
sub edx, eax
mov eax, edx
xor eax, fcn.008082f0
sete al
xor al, 5
add al, 0x84
and al, 7
movzx eax, al
bt ecx, eax
jb 0x80447d
mov al, byte [0xbb8497]
mov ecx, edx
mov ah, 1
xor ecx, fcn.008082f0
sete cl
xor cl, 5
add cl, 0x84
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb8497], ah
jne 0x804315
mov edx, fcn.008082f0
mov ecx, 3
movzx eax, al
sub ecx, edx
mov edx, ecx
xor edx, fcn.008082f0
sete dl
xor dl, 5
add dl, 0x84
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x80438e
mov eax, ecx
movzx edx, byte [0xbb8497]
xor eax, fcn.008082f0
sete al
xor al, 5
add al, 0x84
and al, 7
movzx eax, al
bt edx, eax
jae 0x80436a
jmp 0x80447d
xor ecx, fcn.008082f0
movzx ecx, byte [0xbb8497]
sete al
xor al, 5
add al, 0x84
and al, 7
movzx eax, al
bt ecx, eax
jb 0x804452
mov eax, fcn.008082f0
mov edx, 3
xor ecx, ecx
mov edi, esi
sub edx, eax
mov eax, dword [0xbb8480]
xor edx, fcn.008082f0
sete cl
xor ecx, 0x2bf60db5
add ecx, 0x484
xor eax, ecx
mov dword [0xbb8480], eax
not eax
mov edx, dword [0xbb8484]
imul eax, ecx
and cl, 7
lea esi, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbb8484], edx
or esi, eax
not edx
mov eax, dword [0xbb8488]
imul edx, esi
lea esi, [edx*4]
xor eax, edx
shr edx, 0x1d
mov dword [0xbb8488], eax
or esi, edx
not eax
mov edx, dword [0xbb848c]
imul eax, esi
lea esi, [eax*8]
xor edx, eax
shr eax, 0x1c
mov dword [0xbb848c], edx
or esi, eax
not edx
mov al, 1
imul edx, esi
shl al, cl
mov esi, edi
xor dword [0xbb8490], edx
or byte [0xbb8497], al
mov eax, fcn.008082f0
mov ecx, 3
sub ecx, eax
mov al, 0xfe
xor ecx, fcn.008082f0
sete cl
xor cl, 5
add cl, 0x84
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb8497], al
push 0xbb8480
push esi
call fcn.0078de60
add esp, 8
cmp dword [esi + 0x24], 0
mov eax, 2
jne 0x8044a3
mov ecx, dword [esi]
xor eax, eax
cmp byte [ecx + 0x51], 0
setne al
add eax, eax
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret
movzx eax, cl
jmp dword [eax*4 + 0xb59d0c]