Function at 0x7dc100
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x64
mov eax, dword [esp + 0x80]
mov ebp, edx
mov edx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x7c]
xor esi, esi
mov dword [esp + 0x18], eax
mov eax, dword [0xbd33e0]
xor eax, esp
mov dword [esp + 0x60], eax
mov edi, dword [ecx]
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
cmp byte [edi + 0x51], 0
jne 0x7df3fc
cmp dword [ecx + 0x24], 0
jg 0x7df3fc
cmp byte [esp + 0x98], 2
je 0x7dc169
cmp byte [ecx + 0xc8], 1
je 0x7df3fc
mov dword [esp + 0xc], edx
mov esi, ecx
call fcn.007d1540
test eax, eax
je 0x7dc186
mov edx, dword [esp + 0x8c]
xor esi, esi
jmp 0x7df3fc
mov edx, dword [esp + 0x80]
mov ecx, esi
call fcn.0080f750
test eax, eax
jne 0x7dc178
test ebx, ebx
mov dword [esp + 8], esi
je 0x7dc6aa
mov ecx, dword [esp + 8]
lea eax, [esp + 0x44]
mov edx, ebp
push eax
push dword [esp + 0x7c]
call fcn.00800700
add esp, 8
test eax, eax
mov esi, 0
jns 0x7dc1d0
mov edx, dword [esp + 0x8c]
jmp 0x7df3fc
cmp byte [edi + 0xa5], 0
mov ebp, eax
jne 0x7dc206
mov ecx, dword [esp + 8]
mov edx, ebx
call fcn.0080fb50
test eax, eax
je 0x7dc206
mov ecx, dword [esp + 0x78]
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x7dc206
mov eax, dword [eax + 0x48]
mov ecx, dword [edi + 0x10]
cmp eax, dword [ecx + 0x1c]
mov eax, 1
cmove ebp, eax
mov edx, fcn.0081c0f0
xor eax, eax
mov dword [esp + 0x20], ebp
not edx
movzx esi, byte [0xbb90cf]
and edx, 1
mov ecx, edx
add ecx, fcn.0081c0f0
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2 + 4]
and al, 7
movzx eax, al
bt esi, eax
jb 0x7dc372
mov al, byte [0xbb90cf]
mov ebp, ebx
mov esi, edx
xor ebx, ebx
mov ah, 1
add esi, fcn.0081c0f0
sete bl
mov ecx, ebx
not ecx
lea ecx, [ebx + ecx*2 + 4]
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb90cf], ah
jne 0x7dc245
mov ecx, fcn.0081c0f0
xor edx, edx
movzx eax, al
not ecx
and ecx, 1
mov esi, ecx
add esi, fcn.0081c0f0
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 0x7dc2cd
mov ebx, ebp
mov edx, ecx
xor eax, eax
movzx esi, byte [0xbb90cf]
add edx, fcn.0081c0f0
sete al
mov edx, eax
not edx
lea eax, [eax + edx*2 + 4]
and al, 7
movzx eax, al
bt esi, eax
jae 0x7dc2a2
jmp 0x7dc372
xor eax, eax
add ecx, fcn.0081c0f0
movzx edx, byte [0xbb90cf]
mov ebx, ebp
sete al
mov ecx, eax
not ecx
lea eax, [eax + ecx*2 + 4]
and al, 7
movzx eax, al
bt edx, eax
jb 0x7dc346
mov ecx, fcn.0081c0f0
xor eax, eax
mov esi, dword [0xbb90c4]
not ecx
and ecx, 1
add ecx, fcn.0081c0f0
sete al
mov ecx, eax
not ecx
and ecx, 0x36b
lea ecx, [eax + ecx*2 + 0x7a72a494]
mov edx, ecx
xor esi, ecx
shr edx, 0x1f
mov dword [0xbb90c4], esi
not esi
or edx, ecx
and cl, 7
imul edx, esi
xor dword [0xbb90c8], edx
mov dl, 1
shl dl, cl
or byte [0xbb90cf], dl
mov eax, fcn.0081c0f0
xor ecx, ecx
not eax
and eax, 1
add eax, fcn.0081c0f0
sete cl
mov eax, ecx
not eax
lea ecx, [ecx + eax*2 + 4]
mov al, 0xfe
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb90cf], al
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 8]
lea esi, [esp + 0x48]
mov ecx, esi
mov edx, ebp
mov dword [esp + 0x30], eax
push eax
push 0xbb90c4
push dword [esp + 0x28]
call fcn.0080fba0
add esp, 0xc
mov ecx, esi
mov edx, ebx
call fcn.0080fbe0
lea eax, [ebx + 8]
xor esi, esi
mov ecx, ebp
xor edx, edx
push eax
call fcn.0080c090
add esp, 4
test eax, eax
jne 0x7dc3c3
mov edx, dword [esp + 0x8c]
jmp 0x7df3fc
cmp dword [esp + 0x20], 1
mov ebp, eax
jne 0x7dc686
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 0x1c]
cmp eax, dword [ebp + 0x48]
je 0x7dc686
mov edx, 0x840e40
xor eax, eax
movzx esi, byte [0xbb9107]
not edx
and edx, 1
mov ecx, edx
add ecx, 0x840e40
sete al
mov ecx, eax
xor ecx, 3
lea eax, [ecx + eax*2]
bt esi, eax
jb 0x7dc66d
mov al, byte [0xbb9107]
mov dword [esp], ebp
mov ebp, ebx
mov esi, edx
xor ecx, ecx
mov ah, 1
add esi, 0x840e40
sete cl
mov ebx, ecx
xor ebx, 3
lea ecx, [ebx + ecx*2]
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb9107], ah
jne 0x7dc418
mov ecx, 0x840e40
xor edx, edx
movzx eax, al
not ecx
and ecx, 1
mov esi, ecx
add esi, 0x840e40
sete dl
mov ebx, edx
xor ebx, 3
lea edx, [ebx + edx*2]
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7dc498
mov ebx, ebp
mov ebp, dword [esp]
mov edx, ecx
xor eax, eax
movzx esi, byte [0xbb9107]
add edx, 0x840e40
sete al
mov edx, eax
xor edx, 3
lea eax, [edx + eax*2]
bt esi, eax
jae 0x7dc472
jmp 0x7dc66d
xor eax, eax
add ecx, 0x840e40
movzx edx, byte [0xbb9107]
sete al
mov ecx, eax
xor ecx, 3
lea eax, [ecx + eax*2]
bt edx, eax
jb 0x7dc63f
mov eax, 0x840e40
xor ecx, ecx
not eax
and eax, 1
add eax, 0x840e40
sete cl
mov eax, ecx
xor eax, 0xec5be07b
lea ecx, [eax + ecx*2 + 0xe00]
mov eax, dword [0xbb90d0]
mov edx, ecx
shr edx, 0x1f
or edx, ecx
xor eax, ecx
and cl, 7
mov dword [0xbb90d0], eax
not eax
imul edx, eax
mov eax, dword [0xbb90d4]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb90d4], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb90d8]
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb90d8], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb90dc]
lea esi, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb90dc], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb90e0]
mov esi, eax
shl esi, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbb90e0], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb90e4]
mov esi, edx
shl esi, 5
xor eax, edx
shr edx, 0x1a
mov dword [0xbb90e4], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb90e8]
mov esi, eax
shl esi, 6
xor edx, eax
shr eax, 0x19
mov dword [0xbb90e8], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb90ec]
mov esi, edx
shl esi, 7
xor eax, edx
shr edx, 0x18
mov dword [0xbb90ec], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb90f0]
mov esi, eax
shl esi, 8
xor edx, eax
shr eax, 0x17
mov dword [0xbb90f0], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb90f4]
mov esi, edx
shl esi, 9
xor eax, edx
shr edx, 0x16
mov dword [0xbb90f4], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb90f8]
mov esi, eax
shl esi, 0xa
xor edx, eax
shr eax, 0x15
mov dword [0xbb90f8], edx
or eax, esi
not edx
mov ebx, dword [0xbb90fc]
imul edx, eax
mov esi, edx
shl esi, 0xb
xor ebx, edx
shr edx, 0x14
mov dword [0xbb90fc], ebx
or edx, esi
not ebx
imul ebx, edx
mov dl, 1
xor dword [0xbb9100], ebx
shl dl, cl
or byte [0xbb9107], dl
mov eax, 0x840e40
xor ecx, ecx
mov ebx, ebp
not eax
and eax, 1
add eax, 0x840e40
sete cl
mov eax, ecx
xor eax, 3
lea ecx, [eax + ecx*2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0xbb9107], al
mov ebp, dword [esp]
push dword [ebp]
push 0xbb90d0
push dword [esp + 0x10]
call fcn.0078de60
add esp, 0xc
jmp 0x7dcec8
cmp byte [ebp + 0x24], 0
mov dword [esp], ebp
js 0x7dc69b
mov dword [esp + 0x1c], 0
mov ebp, ebx
jmp 0x7dc6ec
mov ecx, ebp
mov ebp, ebx
call fcn.00792930
mov dword [esp + 0x1c], eax
jmp 0x7dc6ec
mov eax, dword [esp + 8]
mov esi, 0
mov eax, dword [eax + 0xe4]
test eax, eax
jne 0x7dc6c9
mov edx, dword [esp + 0x8c]
jmp 0x7df3fc
mov edx, dword [eax + 0x48]
mov ecx, edi
mov ebp, ebx
mov dword [esp], eax
call fcn.0078dee0
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x1c], 0
mov edx, fcn.0080e580
mov esi, fcn.0080e580
xor eax, eax
movzx ebx, byte [0xbb9117]
or edx, 2
xor esi, 2
mov ecx, edx
add ecx, esi
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
or al, 4
movzx eax, al
bt ebx, eax
jb 0x7dc85a
mov al, byte [0xbb9117]
mov ebx, edx
xor ecx, ecx
mov ah, 1
add ebx, esi
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 [0xbb9117], ah
jne 0x7dc727
mov ecx, fcn.0080e580
mov edx, fcn.0080e580
xor ebx, ebx
mov ah, 7
or ecx, 2
xor edx, 2
mov esi, ecx
add esi, edx
sete bl
mov esi, ebx
xor ebx, 1
lea ebx, [esi + ebx*2]
or bl, 4
sub ah, bl
movzx esi, ah
movzx eax, al
bt eax, esi
jae 0x7dc7a9
mov esi, ecx
xor eax, eax
add esi, edx
movzx esi, byte [0xbb9117]
sete al
mov ebx, eax
xor ebx, 1
lea eax, [eax + ebx*2]
or al, 4
movzx eax, al
bt esi, eax
jae 0x7dc782
jmp 0x7dc85a
xor eax, eax
add ecx, edx
movzx edx, byte [0xbb9117]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x7dc82b
mov eax, fcn.0080e580
mov ecx, fcn.0080e580
xor edx, edx
xor ecx, 2
or eax, 2
add eax, ecx
sete dl
mov eax, edx
xor eax, 1
lea ecx, [edx + eax*2 + 0x1dcafefc]
mov eax, dword [0xbb9108]
xor eax, ecx
mov dword [0xbb9108], eax
not eax
mov edx, dword [0xbb910c]
imul eax, ecx
and cl, 7
lea esi, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbb910c], edx
or eax, esi
not edx
imul edx, eax
xor dword [0xbb9110], edx
mov dl, 1
shl dl, cl
or byte [0xbb9117], dl
mov eax, fcn.0080e580
mov ecx, fcn.0080e580
xor edx, edx
xor ecx, 2
or eax, 2
add eax, ecx
mov cl, 7
sete dl
mov eax, edx
xor eax, 1
lea eax, [edx + eax*2]
mov dl, 0xfe
or al, 4
sub cl, al
rol dl, cl
and byte [0xbb9117], dl
mov eax, dword [edi + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [esp]
mov esi, dword [eax]
push 7
push 0xbb9108
push esi
call fcn.00783750
add esp, 0xc
test eax, eax
mov ebx, ebp
jne 0x7dcac6
test ebx, ebx
je 0x7dcac6
mov al, byte [edi + 0xa5]
test al, al
jne 0x7dcac6
mov eax, fcn.007938b0
mov edx, 3
movzx ebp, byte [0xbb9143]
sub edx, eax
xor eax, eax
mov ecx, edx
xor ecx, fcn.007938b0
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2 + 6]
and al, 7
movzx eax, al
bt ebp, eax
mov ebp, dword [esp]
jb 0x7dcabb
mov al, byte [0xbb9143]
mov ebp, ebx
mov ebx, edx
xor ecx, ecx
mov ah, 1
xor ebx, fcn.007938b0
sete cl
mov ebx, ecx
xor ebx, 1
lea ecx, [ecx + ebx*2 + 6]
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb9143], ah
jne 0x7dc8d7
mov edx, fcn.007938b0
mov ecx, 3
movzx eax, al
sub ecx, edx
xor edx, edx
mov ebx, ecx
xor ebx, fcn.007938b0
sete dl
mov ebx, edx
xor ebx, 1
lea edx, [edx + ebx*2 + 6]
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7dc967
mov ebx, ebp
mov ebp, dword [esp]
mov edx, ecx
xor eax, eax
xor edx, fcn.007938b0
sete al
mov edx, eax
xor edx, 1
lea eax, [eax + edx*2 + 6]
movzx edx, byte [0xbb9143]
and al, 7
movzx eax, al
bt edx, eax
jae 0x7dc93b
jmp 0x7dcabb
xor eax, eax
xor ecx, fcn.007938b0
movzx edx, byte [0xbb9143]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2 + 6]
and al, 7
movzx eax, al
bt edx, eax
jb 0x7dca86
mov eax, fcn.007938b0
mov ecx, 3
sub ecx, eax
xor eax, eax
xor ecx, fcn.007938b0
sete al
mov ecx, eax
not ecx
and ecx, 0x8c1
lea ecx, [eax + ecx*2 + 0x109f832e]
mov eax, dword [0xbb9120]
xor eax, ecx
mov dword [0xbb9120], eax
not eax
mov edx, dword [0xbb9124]
imul eax, ecx
and cl, 7
lea ebx, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbb9124], edx
or eax, ebx
not edx
imul edx, eax
mov eax, dword [0xbb9128]
lea ebx, [edx*4]
xor eax, edx
shr edx, 0x1d
mov dword [0xbb9128], eax
or edx, ebx
not eax
imul eax, edx
mov edx, dword [0xbb912c]
lea ebx, [eax*8]
xor edx, eax
shr eax, 0x1c
mov dword [0xbb912c], edx
or eax, ebx
not edx
imul edx, eax
mov eax, dword [0xbb9130]
mov ebx, edx
shl ebx, 4
xor eax, edx
shr edx, 0x1b
mov dword [0xbb9130], eax
or edx, ebx
not eax
imul eax, edx
mov edx, dword [0xbb9134]
mov ebx, eax
shl ebx, 5
xor edx, eax
shr eax, 0x1a
mov dword [0xbb9134], edx
or eax, ebx
not edx
imul edx, eax
mov eax, dword [0xbb9138]
mov ebx, edx
shl ebx, 6
xor eax, edx
shr edx, 0x19
mov dword [0xbb9138], eax
or edx, ebx
not eax
imul eax, edx
mov dl, 1
xor dword [0xbb913c], eax
shl dl, cl
or byte [0xbb9143], dl
mov eax, fcn.007938b0
mov ecx, 3
mov ebx, ebp
sub ecx, eax
xor eax, eax
xor ecx, fcn.007938b0
sete al
mov ecx, eax
xor ecx, 1
lea ecx, [eax + ecx*2 + 6]
mov al, 0xfe
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb9143], al
mov ebp, dword [esp]
push esi
push 0xbb9120
jmp 0x7dc675
mov ebp, dword [esp]
cmp dword [ebp + 0xc], 0
je 0x7dcc99
mov edx, fcn.007c0d60
movzx ecx, byte [0xbb916f]
and edx, 1
inc edx
mov eax, edx
xor eax, fcn.007c0d60
sete al
not al
and al, 3
movzx eax, al
bt ecx, eax
jb 0x7dcc83
mov al, byte [0xbb916f]
mov ecx, edx
mov ah, 1
xor ecx, fcn.007c0d60
sete cl
not cl
and cl, 3
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb916f], ah
jne 0x7dcb02
mov ecx, fcn.007c0d60
movzx eax, al
and ecx, 1
inc ecx
mov edx, ecx
xor edx, fcn.007c0d60
sete dl
not dl
and dl, 3
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7dcb6e
mov eax, ecx
movzx edx, byte [0xbb916f]
xor eax, fcn.007c0d60
sete al
not al
and al, 3
movzx eax, al
bt edx, eax
jae 0x7dcb4c
jmp 0x7dcc83
xor ecx, fcn.007c0d60
movzx ecx, byte [0xbb916f]
sete al
not al
and al, 3
movzx eax, al
bt ecx, eax
jb 0x7dcc60
mov eax, fcn.007c0d60
xor ecx, ecx
and eax, 1
inc eax
xor eax, fcn.007c0d60
mov eax, dword [0xbb9150]
sete cl
xor ecx, 0x1a2a2f6b
add ecx, 0x108
xor eax, ecx
mov dword [0xbb9150], eax
not eax
mov edx, dword [0xbb9154]
imul eax, ecx
and cl, 7
lea esi, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbb9154], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb9158]
lea esi, [edx*4]
xor eax, edx
shr edx, 0x1d
mov dword [0xbb9158], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb915c]
lea esi, [eax*8]
xor edx, eax
shr eax, 0x1c
mov dword [0xbb915c], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb9160]
mov esi, edx
shl esi, 4
xor eax, edx
shr edx, 0x1b
mov dword [0xbb9160], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [0xbb9164]
mov esi, eax
shl esi, 5
xor edx, eax
shr eax, 0x1a
mov dword [0xbb9164], edx
or eax, esi
not edx
imul edx, eax
xor dword [0xbb9168], edx
mov dl, 1
shl dl, cl
or byte [0xbb916f], dl
mov eax, fcn.007c0d60
and eax, 1
inc eax
xor eax, fcn.007c0d60
mov al, 0xfe
sete cl
not cl
and cl, 3
xor cl, 7
rol al, cl
and byte [0xbb916f], al
push 0xbb9150
push dword [esp + 0xc]
call fcn.0078de60
add esp, 8
jmp 0x7dcec8
cmp dword [ebp + 0x38], 0
je 0x7dce9b
mov edx, 0x78ac50
movzx ecx, byte [0xbb9197]
imul edx, edx
and edx, 3
cmp edx, 2
sete al
xor al, 5
add al, 0x84
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7dce91
mov al, byte [0xbb9197]
cmp edx, 2
mov ah, 1
sete cl
xor cl, 5
add cl, 0x84
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb9197], ah
jne 0x7dccd2
mov ecx, 0x78ac50
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 2
sete dl
xor dl, 5
add dl, 0x84
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7dcd3c
cmp ecx, 2
movzx edx, byte [0xbb9197]
sete al
xor al, 5
add al, 0x84
and al, 7
movzx eax, al
bt edx, eax
jae 0x7dcd1c
jmp 0x7dce91
cmp ecx, 2
movzx ecx, byte [0xbb9197]
sete al
xor al, 5
add al, 0x84
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7dce6a
mov eax, 0x78ac50
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 2
mov eax, dword [0xbb9170]
sete cl
xor ecx, 0xfab8ba1d
add ecx, 0xa84
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbb9170], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbb9174]
lea esi, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb9174], eax
or esi, edx
not eax
mov edx, dword [0xbb9178]
imul eax, esi
lea esi, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb9178], edx
or esi, eax
not edx
mov eax, dword [0xbb917c]
imul edx, esi
lea esi, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb917c], eax
or esi, edx
not eax
mov edx, dword [0xbb9180]
imul eax, esi
mov esi, eax
shl esi, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbb9180], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb9184]
mov esi, edx
shl esi, 5
xor eax, edx
shr edx, 0x1a
mov dword [0xbb9184], eax
or edx, esi
not eax
imul eax, edx
mov edx, dword [str.U980_]
mov esi, eax
shl esi, 6
xor edx, eax
shr eax, 0x19
mov dword [str.U980_], edx
or eax, esi
not edx
imul edx, eax
mov eax, dword [0xbb918c]
mov esi, edx
shl esi, 7
xor eax, edx
shr edx, 0x18
mov dword [0xbb918c], eax
or edx, esi
not eax
imul eax, edx
mov dl, 1
xor dword [0xbb9190], eax
shl dl, cl
or byte [0xbb9197], dl
mov eax, 0x78ac50
imul eax, eax
and eax, 3
cmp eax, 2
mov al, 0xfe
sete cl
xor cl, 5
add cl, 0x84
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb9197], al
push 0xbb9170
jmp 0x7dcc88
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
shl eax, 4
test edx, edx
mov dword [esp + 0x2c], eax
lea eax, [ecx + eax]
mov dword [esp + 4], eax
je 0x7dd4dc
mov ecx, edi
call fcn.007e4800
test eax, eax
jne 0x7dced6
mov edx, dword [esp + 0x8c]
xor esi, esi
jmp 0x7df3b6
mov edx, fcn.0083ffb0
mov dword [esp + 0x10], eax
xor eax, eax
imul edx, edx
movzx esi, byte [0xbb91a3]
and edx, 3
cmp edx, 3
sete al
mov ecx, eax
xor ecx, 3
lea eax, [eax + ecx*2]
bt esi, eax
jb 0x7dd01e
mov al, byte [0xbb91a3]
mov ebp, ebx
xor ecx, ecx
cmp edx, 3
mov ah, 1
sete cl
mov ebx, ecx
not ebx
and ebx, 3
lea ecx, [ecx + ebx*2]
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb91a3], ah
jne 0x7dcf0c
mov ecx, fcn.0083ffb0
xor edx, edx
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete dl
mov ebx, edx
not ebx
and ebx, 3
lea edx, [edx + ebx*2]
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7dcf82
mov ebx, ebp
mov ebp, dword [esp]
xor eax, eax
cmp ecx, 3
movzx esi, byte [0xbb91a3]
sete al
mov edx, eax
xor edx, 3
lea eax, [eax + edx*2]
bt esi, eax
jae 0x7dcf61
jmp 0x7dd01e
xor eax, eax
cmp ecx, 3
movzx edx, byte [0xbb91a3]
sete al
mov ecx, eax
xor ecx, 3
lea eax, [eax + ecx*2]
bt edx, eax
jb 0x7dcfef
mov ecx, fcn.0083ffb0
xor eax, eax
mov esi, dword [0xbb9198]
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete al
mov ecx, eax
not ecx
and ecx, 0x40b
lea ecx, [eax + ecx*2 - 0x14be1db0]
mov edx, ecx
xor esi, ecx
shr edx, 0x1f
mov dword [0xbb9198], esi
not esi
or edx, ecx
and cl, 7
imul edx, esi
xor dword [0xbb919c], edx
mov dl, 1
shl dl, cl
or byte [0xbb91a3], dl
mov ecx, fcn.0083ffb0
xor eax, eax
mov ebx, ebp
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete al
mov ecx, eax
not ecx
and ecx, 3
lea ecx, [eax + ecx*2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0xbb91a3], al
mov ebp, dword [esp]
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x10]
mov ecx, esi
push dword [ebp]
push 0xbb9198
call fcn.00800ad0
add esp, 8
test eax, eax
je 0x7dd04c
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x8c]
jmp 0x7df3b6
cmp byte [esi + 0xc8], 1
ja 0x7dda73
cmp byte [edi + 0xa5], 0
jne 0x7dd2a6
mov edx, dword [esp + 0x10]
mov ecx, edi
push 0
call fcn.00797640
add esp, 4
test eax, eax
je 0x7dd2a6
mov edx, 0x840d90
mov eax, 0x840d90
movzx ecx, byte [0xbb91d7]
and edx, 1
xor edx, eax
cmp edx, 0xffffffff
sete al
not al
add al, 0x10
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7dd27d
mov al, byte [0xbb91d7]
cmp edx, 0xffffffff
mov ah, 1
sete cl
not cl
add cl, 0x10
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb91d7], ah
jne 0x7dd0b1
mov ecx, 0x840d90
mov edx, 0x840d90
movzx eax, al
and ecx, 1
xor ecx, edx
cmp ecx, 0xffffffff
sete dl
not dl
add dl, 0x10
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7dd11d
cmp ecx, 0xffffffff
movzx edx, byte [0xbb91d7]
sete al
not al
add al, 0x10
and al, 7
movzx eax, al
bt edx, eax
jae 0x7dd0fd
jmp 0x7dd27d
cmp ecx, 0xffffffff
movzx ecx, byte [0xbb91d7]
sete al
not al
add al, 0x10
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7dd253
mov edx, 0x840d90
mov eax, 0x840d90
xor ecx, ecx
and edx, 1
xor edx, eax
mov eax, dword [0xbb91b0]
cmp edx, 0xffffffff
sete cl
xor ecx, 0xee605387
add ecx, 0x1010
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbb91b0], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbb91b4]
lea ebx, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb91b4], eax
or ebx, edx
not eax
mov edx, dword [0xbb91b8]
imul eax, ebx
lea ebx, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb91b8], edx
or ebx, eax
not edx
mov eax, dword [0xbb91bc]
imul edx, ebx
lea ebx, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb91bc], eax
or ebx, edx
not eax
mov edx, dword [0xbb91c0]
imul eax, ebx
mov ebx, eax
shl ebx, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbb91c0], edx
or eax, ebx
not edx
mov ebp, dword [0xbb91c4]
imul edx, eax
mov ebx, edx
shl ebx, 5
xor ebp, edx
shr edx, 0x1a
mov dword [0xbb91c4], ebp
or edx, ebx
not ebp
imul ebp, edx
mov edx, dword [0xbb91c8]
mov ebx, ebp
shl ebx, 6
xor edx, ebp
shr ebp, 0x19
mov dword [0xbb91c8], edx
or ebp, ebx
not edx
mov esi, dword [0xbb91cc]
imul edx, ebp
mov ebx, edx
shl ebx, 7
xor esi, edx
shr edx, 0x18
mov dword [0xbb91cc], esi
or edx, ebx
not esi
imul esi, edx
mov dl, 1
xor dword [0xbb91d0], esi
shl dl, cl
or byte [0xbb91d7], dl
mov ecx, 0x840d90
mov eax, 0x840d90
and ecx, 1
xor ecx, eax
mov al, 0xfe
cmp ecx, 0xffffffff
sete cl
not cl
add cl, 0x10
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb91d7], al
mov esi, dword [esp + 0x10]
push esi
push 0xbb91b0
push dword [esp + 0x10]
call fcn.0078de60
add esp, 0xc
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp]
mov edx, dword [esp + 0x8c]
jmp 0x7df3b6
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x10]
mov ecx, edi
push dword [eax]
call fcn.007cab10
add esp, 4
test eax, eax
je 0x7dd6ba
mov eax, dword [esp + 0x94]
test eax, eax
jne 0x7dd4ca
mov edx, fcn.00784340
xor eax, eax
movzx esi, byte [0xbb91ff]
and edx, 1
inc edx
mov ecx, edx
xor ecx, fcn.00784340
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
or al, 4
movzx eax, al
bt esi, eax
jb 0x7dd4bb
mov al, byte [0xbb91ff]
mov ebx, edx
xor ecx, ecx
mov ah, 1
xor ebx, fcn.00784340
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 [0xbb91ff], ah
jne 0x7dd309
mov ecx, fcn.00784340
xor edx, edx
mov ah, 7
and ecx, 1
inc ecx
mov ebx, ecx
xor ebx, fcn.00784340
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 0x7dd390
mov edx, ecx
xor eax, eax
movzx esi, byte [0xbb91ff]
xor edx, fcn.00784340
sete al
mov edx, eax
xor edx, 1
lea eax, [eax + edx*2]
or al, 4
movzx eax, al
bt esi, eax
jae 0x7dd365
jmp 0x7dd4bb
xor eax, eax
xor ecx, fcn.00784340
movzx edx, byte [0xbb91ff]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x7dd490
mov ecx, fcn.00784340
xor eax, eax
and ecx, 1
inc ecx
xor ecx, fcn.00784340
sete al
mov ecx, eax
not ecx
and ecx, 0x861
lea ecx, [eax + ecx*2 + 0x11388584]
mov eax, dword [0xbb91e0]
xor eax, ecx
mov dword [0xbb91e0], eax
not eax
mov edx, dword [0xbb91e4]
imul eax, ecx
and cl, 7
lea ebx, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbb91e4], edx
or ebx, eax
not edx
mov eax, dword [0xbb91e8]
imul edx, ebx
lea ebx, [edx*4]
xor eax, edx
shr edx, 0x1d
mov dword [0xbb91e8], eax
or ebx, edx
not eax
mov edx, dword [0xbb91ec]
imul eax, ebx
lea ebx, [eax*8]
xor edx, eax
shr eax, 0x1c
mov dword [0xbb91ec], edx
or ebx, eax
not edx
mov eax, dword [0xbb91f0]
imul edx, ebx
mov ebx, edx
shl ebx, 4
xor eax, edx
shr edx, 0x1b
mov dword [0xbb91f0], eax
or edx, ebx
not eax
imul eax, edx
mov edx, dword [0xbb91f4]
mov ebx, eax
shl ebx, 5
xor edx, eax
shr eax, 0x1a
mov dword [0xbb91f4], edx
or eax, ebx
not edx
imul edx, eax
xor dword [0xbb91f8], edx
mov dl, 1
shl dl, cl
or byte [0xbb91ff], dl
mov eax, fcn.00784340
xor ecx, ecx
mov dl, 0xfe
and eax, 1
inc eax
xor eax, fcn.00784340
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 [0xbb91ff], dl
mov esi, dword [esp + 0x10]
push esi
push 0xbb91e0
jmp 0x7dd287
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x20]
call fcn.007fea70
jmp 0x7ddad0
mov eax, dword [ebp + 8]
mov edx, 1
jmp 0x7dd4ea
mov eax, dword [eax + 0x14]
inc edx
test eax, eax
jne 0x7dd4e6
mov ebp, 0x7a20a0
mov eax, 0x7a20a0
movzx ecx, byte [0xbb921b]
and ebp, 1
xor ebp, eax
cmp ebp, 0xffffffff
sete al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x7dd67b
mov al, byte [0xbb921b]
cmp ebp, 0xffffffff
mov ah, 1
sete cl
or cl, 4
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb921b], ah
jne 0x7dd51d
mov ecx, 0x7a20a0
mov ebx, 0x7a20a0
and ecx, 1
xor ecx, ebx
cmp ecx, 0xffffffff
sete ah
or ah, 4
xor ah, 7
movzx ebx, ah
movzx eax, al
bt eax, ebx
jae 0x7dd57b
cmp ecx, 0xffffffff
movzx ebx, byte [0xbb921b]
sete al
or al, 4
movzx eax, al
bt ebx, eax
jae 0x7dd55f
jmp 0x7dd67b
cmp ecx, 0xffffffff
movzx ebx, byte [0xbb921b]
sete al
or al, 4
movzx eax, al
bt ebx, eax
jb 0x7dd656
mov ebx, 0x7a20a0
mov eax, 0x7a20a0
xor ecx, ecx
and ebx, 1
xor ebx, eax
mov eax, dword [0xbb9200]
cmp ebx, 0xffffffff
sete cl
or ecx, 0x7a75bf40
add ecx, 0x124
mov ebx, ecx
xor eax, ecx
shr ebx, 0x1f
mov dword [0xbb9200], eax
not eax
or ebx, ecx
and cl, 7
imul ebx, eax
mov eax, dword [0xbb9204]
lea ebp, [ebx + ebx]
xor eax, ebx
shr ebx, 0x1e
mov dword [0xbb9204], eax
or ebp, ebx
not eax
mov ebx, dword [0xbb9208]
imul eax, ebp
lea ebp, [eax*4]
xor ebx, eax
shr eax, 0x1d
mov dword [0xbb9208], ebx
or ebp, eax
not ebx
mov eax, dword [0xbb920c]
imul ebx, ebp
lea ebp, [ebx*8]
xor eax, ebx
shr ebx, 0x1c
mov dword [0xbb920c], eax
or ebp, ebx
not eax
mov ebx, dword [0xbb9210]
imul eax, ebp
mov ebp, eax
shl ebp, 4
xor ebx, eax
shr eax, 0x1b
mov dword [0xbb9210], ebx
or eax, ebp
not ebx
imul ebx, eax
mov ah, 1
xor dword [0xbb9214], ebx
shl ah, cl
or byte [0xbb921b], ah
mov ecx, 0x7a20a0
mov eax, 0x7a20a0
and ecx, 1
xor ecx, eax
mov al, 0xfe
cmp ecx, 0xffffffff
sete cl
or cl, 4
xor cl, 7
rol al, cl
and byte [0xbb921b], al
push edx
push esi
push 0xbb9200
push edi
call fcn.0078df10
add esp, 0x10
test eax, eax
jne 0x7dd6a4
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp]
mov edx, dword [esp + 0x8c]
xor esi, esi
jmp 0x7df3b2
mov edx, dword [esp + 8]
mov ecx, eax
mov dword [esp + 0x10], ecx
cmp byte [edx + 0xc8], 0
je 0x7dd6cb
inc byte [ecx + 7]
mov eax, dword [esp + 8]
cmp byte [eax + 0xc8], 1
ja 0x7dda73
mov eax, fcn.007a34c0
mov edx, 3
movzx esi, byte [0xbb9237]
sub edx, eax
xor eax, eax
mov ecx, edx
xor ecx, fcn.007a34c0
sete al
mov ecx, eax
xor ecx, 3
lea eax, [eax + ecx*2]
bt esi, eax
jb 0x7dd87b
mov al, byte [0xbb9237]
mov ebx, edx
xor ecx, ecx
mov ah, 1
xor ebx, fcn.007a34c0
sete cl
mov ebx, ecx
not ebx
and ebx, 3
lea ecx, [ecx + ebx*2]
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb9237], ah
jne 0x7dd701
mov edx, fcn.007a34c0
mov ecx, 3
movzx eax, al
sub ecx, edx
xor edx, edx
mov ebx, ecx
xor ebx, fcn.007a34c0
sete dl
mov ebx, edx
not ebx
and ebx, 3
lea edx, [edx + ebx*2]
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7dd782
mov edx, ecx
xor eax, eax
movzx esi, byte [0xbb9237]
xor edx, fcn.007a34c0
sete al
mov edx, eax
xor edx, 3
lea eax, [eax + edx*2]
bt esi, eax
jae 0x7dd75c
jmp 0x7dd87b
xor eax, eax
xor ecx, fcn.007a34c0
movzx edx, byte [0xbb9237]
sete al
mov ecx, eax
xor ecx, 3
lea eax, [eax + ecx*2]
bt edx, eax
jb 0x7dd84d
mov eax, fcn.007a34c0
mov ecx, 3
sub ecx, eax
xor eax, eax
xor ecx, fcn.007a34c0
sete al
mov ecx, eax
not ecx
and ecx, 0x143
lea ecx, [eax + ecx*2 - 0x6124c148]
mov eax, dword [0xbb9220]
mov edx, ecx
shr edx, 0x1f
or edx, ecx
xor eax, ecx
and cl, 7
mov dword [0xbb9220], eax
not eax
imul edx, eax
mov eax, dword [0xbb9224]
lea ebx, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb9224], eax
or ebx, edx
not eax
mov edx, dword [0xbb9228]
imul eax, ebx
lea ebx, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb9228], edx
or ebx, eax
not edx
mov eax, dword [0xbb922c]
imul edx, ebx
lea ebx, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb922c], eax
or ebx, edx
not eax
mov dl, 1
imul eax, ebx
shl dl, cl
xor dword [0xbb9230], eax
or byte [0xbb9237], dl
mov eax, fcn.007a34c0
mov ecx, 3
sub ecx, eax
xor eax, eax
xor ecx, fcn.007a34c0
sete al
mov ecx, eax
not ecx
and ecx, 3
lea ecx, [eax + ecx*2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0xbb9237], al
mov edx, fcn.007d2de0
xor eax, eax
movzx esi, byte [0xbb9253]
imul edx, edx
and edx, 3
cmp edx, 1
seta al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2 + 4]
and al, 7
movzx eax, al
bt esi, eax
jb 0x7dda02
mov al, byte [0xbb9253]
xor ecx, ecx
cmp edx, 1
mov ah, 1
seta 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 [0xbb9253], ah
jne 0x7dd8b1
mov ecx, fcn.007d2de0
xor edx, edx
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 1
seta 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 0x7dd92c
xor eax, eax
cmp ecx, 1
movzx esi, byte [0xbb9253]
seta al
mov edx, eax
xor edx, 5
lea eax, [edx + eax*2 + 4]
and al, 7
movzx eax, al
bt esi, eax
jae 0x7dd905
jmp 0x7dda02
xor eax, eax
cmp ecx, 1
movzx edx, byte [0xbb9253]
seta al
mov ecx, eax
xor ecx, 5
lea eax, [ecx + eax*2 + 4]
and al, 7
movzx eax, al
bt edx, eax
jb 0x7dd9d6
mov eax, fcn.007d2de0
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 1
seta cl
mov eax, ecx
xor eax, 0x67f1eb8d
lea ecx, [eax + ecx*2 + 0x8e4]
mov eax, dword [0xbb9240]
mov edx, ecx
shr edx, 0x1f
or edx, ecx
xor eax, ecx
and cl, 7
mov dword [0xbb9240], eax
not eax
imul edx, eax
mov eax, dword [0xbb9244]
lea ebx, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb9244], eax
or ebx, edx
not eax
mov edx, dword [0xbb9248]
imul eax, ebx
lea ebx, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb9248], edx
or ebx, eax
not edx
mov al, 1
imul edx, ebx
shl al, cl
xor dword [0xbb924c], edx
or byte [0xbb9253], al
mov eax, fcn.007d2de0
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 1
seta 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 [0xbb9253], al
mov eax, dword [esp + 4]
cmp dword [esp + 0x20], 1
mov ecx, dword [esp + 8]
mov ebx, 0xbb9240
mov edx, 0x12
mov ebp, dword [eax]
mov eax, 0xbb9220
cmove ebx, eax
push ebp
push 0
push ebx
call fcn.008002d0
add esp, 0xc
test eax, eax
je 0x7dda4a
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x8c]
jmp 0x7df3b2
xor eax, eax
cmp dword [esp + 0x20], 1
mov ecx, dword [esp + 8]
sete al
lea edx, [eax + eax + 1]
push ebp
mov eax, dword [esp + 4]
push dword [eax]
push dword [esp + 0x18]
call fcn.008002d0
add esp, 0xc
test eax, eax
jne 0x7ddad0
cmp dword [esp + 0x80], 0
jne 0x7ddadc
mov ecx, dword [esp]
lea esi, [esp + 0x38]
mov eax, dword [ecx + 4]
movsx ecx, word [ecx + 0x2a]
lea ecx, [ecx + ecx*4]
or word [eax + ecx*4 - 4], 8
mov edx, dword [eax + ecx*4 - 0x14]
mov ecx, esi
call fcn.008022d0
mov ecx, edi
mov edx, 0x3b
push 0
push esi
call fcn.007e4510
add esp, 8
mov ecx, dword [esp + 8]
mov dword [esp + 0x18], 0
xor edx, edx
push eax
call fcn.007e4370
add esp, 4
test eax, eax
jne 0x7ddc65
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp]
jmp 0x7dd03c
mov eax, fcn.007f36e0
mov edx, 3
movzx esi, byte [0xbb925f]
sub edx, eax
xor eax, eax
mov ecx, edx
xor ecx, fcn.007f36e0
sete al
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
and al, 7
movzx eax, al
bt esi, eax
jb 0x7ddc3f
mov al, byte [0xbb925f]
mov ebx, edx
xor ecx, ecx
mov ah, 1
xor ebx, fcn.007f36e0
sete 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 [0xbb925f], ah
jne 0x7ddb16
mov edx, fcn.007f36e0
mov ecx, 3
movzx eax, al
sub ecx, edx
xor edx, edx
mov ebx, ecx
xor ebx, fcn.007f36e0
sete dl
mov ebx, edx
not ebx
lea edx, [ebx + edx*2]
and dl, 7
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7ddb9b
mov edx, ecx
xor eax, eax
movzx esi, byte [0xbb925f]
xor edx, fcn.007f36e0
sete al
mov edx, eax
not edx
lea eax, [edx + eax*2]
and al, 7
movzx eax, al
bt esi, eax
jae 0x7ddb71
jmp 0x7ddc3f
xor eax, eax
xor ecx, fcn.007f36e0
movzx edx, byte [0xbb925f]
sete al
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
and al, 7
movzx eax, al
bt edx, eax
jb 0x7ddc11
mov eax, fcn.007f36e0
mov ecx, 3
mov esi, dword [0xbb9254]
sub ecx, eax
xor eax, eax
xor ecx, fcn.007f36e0
sete al
mov ecx, eax
xor ecx, 0xf4e2c26f
lea ecx, [ecx + eax*2 + 0xa20]
mov edx, ecx
xor esi, ecx
shr edx, 0x1f
mov dword [0xbb9254], esi
not esi
or edx, ecx
and cl, 7
imul edx, esi
xor dword [0xbb9258], edx
mov dl, 1
shl dl, cl
or byte [0xbb925f], dl
mov eax, fcn.007f36e0
mov ecx, 3
sub ecx, eax
xor eax, eax
xor ecx, fcn.007f36e0
sete al
mov ecx, eax
not ecx
lea ecx, [ecx + eax*2]
mov al, 0xfe
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb925f], al
mov esi, dword [esp + 8]
mov edx, dword [esp + 0x80]
mov ecx, esi
push 0xbb9254
call fcn.007e5cc0
add esp, 4
cmp dword [esi + 0x24], 0
jne 0x7dda33
jmp 0x7ddc7e
mov edx, dword [esp + 0x90]
mov esi, eax
mov ecx, eax
push 0xffffffffffffffff
call fcn.007e5180
add esp, 4
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x18]
xor ebp, ebp
xor ebx, ebx
mov esi, dword [eax]
test esi, esi
jle 0x7ddcae
mov ecx, dword [esp + 0x18]
lea eax, [ebp + ebp*4]
mov eax, dword [ecx + eax*4 + 4]
cmp byte [eax], 0x6f
jne 0x7ddca9
mov ecx, dword [eax + 8]
call fcn.00783170
lea ebx, [ebx + eax + 1]
inc ebp
cmp ebp, esi
jne 0x7ddc8c
mov ecx, dword [esp + 0x10]
call fcn.00783170
cmp dword [esp + 0x1c], 0
mov ebp, eax
jne 0x7ddcc7
mov eax, 1
jmp 0x7ddccf
mov eax, dword [esp + 0x1c]
movzx eax, word [eax + 0x32]
add eax, esi
lea esi, [esp + 0x40]
lea ebx, [ebp + ebx + 1]
mov ecx, edi
movsx edx, ax
push esi
push ebx
call fcn.0080ff30
add esp, 8
cmp byte [edi + 0x51], 0
mov dword [esp + 4], eax
jne 0x7de111
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0x84]
inc ebp
lea ecx, [eax + ebp]
mov dword [esi], eax
mov dword [esp + 0x40], ecx
push ebp
push dword [esp + 0x14]
push eax
call fcn.0098a270
add esp, 0xc
mov eax, dword [esp]
mov dl, byte [esp + 0x98]
mov dword [esi + 0xc], eax
mov byte [esi + 0x36], bl
xor eax, eax
test ebx, ebx
mov ecx, dword [esi + 0x38]
setne al
and dl, 3
movzx edx, dl
lea eax, [edx + eax*8]
mov dword [esp + 0x34], edx
and ecx, 0xfffffff4
or eax, ecx
mov ecx, dword [esp + 0x2c]
cmp dword [esp + 0x8c], 0
mov dword [esi + 0x38], eax
mov eax, dword [edi + 0x10]
mov eax, dword [eax + ecx + 0xc]
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x18]
movzx eax, word [eax]
mov word [esi + 0x32], ax
je 0x7ddd93
mov ecx, dword [esp + 8]
mov edx, dword [esp]
push 0
mov eax, dword [esp + 0x90]
mov esi, eax
push eax
push 2
call fcn.00801740
add esp, 0xc
mov eax, dword [esp + 4]
mov dword [eax + 0x24], esi
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + eax + 0xc]
mov ecx, dword [esp + 8]
mov al, byte [eax + 0x4c]
cmp byte [ecx + 0xc8], 2
mov byte [esp + 0x2b], al
jb 0x7dddc4
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 4]
xor edx, edx
mov dword [ecx + 0x28], eax
mov eax, fcn.00780ad0
mov ebx, 3
movzx ecx, byte [0xbb3b93]
sub ebx, eax
mov eax, ebx
xor eax, fcn.00780ad0
sete al
or al, 4
add al, 0xe4
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7ddf08
mov al, byte [0xbb3b93]
mov ecx, ebx
mov ah, 1
xor ecx, fcn.00780ad0
sete cl
or cl, 4
add cl, 0xe4
and cl, 7
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb3b93], ah
jne 0x7dddf8
mov ebx, fcn.00780ad0
mov ecx, 3
sub ecx, ebx
mov ebx, ecx
xor ebx, fcn.00780ad0
sete ah
or ah, 4
add ah, 0xe4
and ah, 7
xor ah, 7
movzx ebx, ah
movzx eax, al
bt eax, ebx
jae 0x7dde71
mov eax, ecx
movzx ebx, byte [0xbb3b93]
xor eax, fcn.00780ad0
sete al
or al, 4
add al, 0xe4
and al, 7
movzx eax, al
bt ebx, eax
jae 0x7dde4d
jmp 0x7ddf08
xor ecx, fcn.00780ad0
movzx ecx, byte [0xbb3b93]
sete al
or al, 4
add al, 0xe4
and al, 7
movzx eax, al
bt ecx, eax
jb 0x7ddedd
mov eax, fcn.00780ad0
mov ebx, 3
xor ecx, ecx
sub ebx, eax
mov eax, dword [str.2_p0]
xor ebx, fcn.00780ad0
sete cl
or ecx, 0x713e5f8c
add ecx, 0xe4
mov ebx, ecx
xor eax, ecx
shr ebx, 0x1f
mov dword [str.2_p0], eax
not eax
or ebx, ecx
and cl, 7
imul ebx, eax
mov ah, 1
xor dword [0xbb3b8c], ebx
shl ah, cl
or byte [0xbb3b93], ah
mov eax, fcn.00780ad0
mov ecx, 3
sub ecx, eax
mov al, 0xfe
xor ecx, fcn.00780ad0
sete cl
or cl, 4
add cl, 0xe4
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb3b93], al
mov eax, dword [esp + 4]
cmp word [eax + 0x32], 0
jne 0x7ddf26
xor eax, eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x18], edx
jmp 0x7de27a
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc], 0
mov dword [esp + 0x18], edx
add ebp, 4
mov dword [esp + 0x14], eax
mov ecx, dword [ebp]
call fcn.0080f730
mov esi, dword [esp + 8]
mov edx, dword [esp]
mov ecx, esi
push 0
push dword [ebp]
push 0x20
call fcn.00801740
add esp, 0xc
cmp dword [esi + 0x24], 0
jne 0x7df382
mov ecx, dword [ebp]
call fcn.007fcea0
cmp byte [eax], 0xa4
je 0x7de15a
mov eax, dword [esp + 8]
mov ecx, dword [esp]
cmp ecx, dword [eax + 0xe4]
jne 0x7de121
mov esi, fcn.007c8cb0
mov ebx, fcn.007c8cb0
xor eax, eax
movzx edx, byte [0xbb92a3]
or esi, 2
xor ebx, 2
mov ecx, esi
add ecx, ebx
sete al
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
and al, 7
movzx eax, al
bt edx, eax
jb 0x7de0f0
mov al, byte [0xbb92a3]
mov ebp, esi
xor edx, edx
add ebp, ebx
sete dl
mov ecx, edx
not ecx
lea ecx, [ecx + edx*2]
mov dl, 1
and cl, 7
xor cl, 7
shl dl, cl
or dl, al
lock cmpxchg byte [0xbb92a3], dl
jne 0x7ddfc9
mov ecx, fcn.007c8cb0
mov edx, fcn.007c8cb0
xor ebx, ebx
movzx eax, al
or ecx, 2
xor edx, 2
mov ebp, ecx
add ebp, edx
sete bl
mov esi, ebx
not ebx
lea ebx, [ebx + esi*2]
and bl, 7
xor bl, 7
movzx ebx, bl
bt eax, ebx
jae 0x7de046
mov ebx, ecx
xor eax, eax
movzx esi, byte [0xbb92a3]
add ebx, edx
sete al
mov ebx, eax
not ebx
lea eax, [ebx + eax*2]
and al, 7
movzx eax, al
bt esi, eax
jae 0x7de020
jmp 0x7de0f0
xor eax, eax
add ecx, edx
movzx esi, byte [0xbb92a3]
sete al
mov ecx, eax
xor ecx, 0x63671f37
lea edx, [ecx + eax*2 + 0x190]
mov eax, edx
and al, 7
movzx eax, al
bt esi, eax
jb 0x7de0c2
mov ebx, 0xbb9260
xor eax, eax
mov ebp, dword [ebx]
mov ecx, eax
mov esi, edx
inc eax
shl esi, cl
xor cl, 0x1f
xor ebp, edx
shr edx, cl
mov dword [ebx], ebp
or edx, esi
not ebp
add ebx, 4
imul edx, ebp
cmp eax, 0x10
jne 0x7de076
mov eax, fcn.007c8cb0
mov ecx, fcn.007c8cb0
xor edx, edx
xor ecx, 2
or eax, 2
add eax, ecx
sete dl
mov eax, edx
not eax
lea ecx, [eax + edx*2]
mov al, 1
and cl, 7
shl al, cl
or byte [0xbb92a3], al
mov eax, fcn.007c8cb0
mov ecx, fcn.007c8cb0
xor edx, edx
xor ecx, 2
or eax, 2
add eax, ecx
sete dl
mov eax, edx
not eax
lea ecx, [eax + edx*2]
mov al, 0xfe
and cl, 7
xor cl, 7
rol al, cl
and byte [0xbb92a3], al
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], eax
push 0xbb9260
push dword [esp + 0xc]
call fcn.0078de60
add esp, 8
mov dword [esp + 0xc], 0
cmp dword [esp + 4], 0
jne 0x7df398
jmp 0x7df3a3
mov eax, dword [esp + 4]
cmp dword [eax + 0x28], 0
jne 0x7de13e
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 4]
mov dword [esp + 0x18], 0
mov dword [ecx + 0x28], eax
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
mov word [eax + edx*2], 0xfffe
and byte [ecx + 0x38], 0xf7
mov eax, 0xfffffffe
jmp 0x7de1a7
movsx eax, word [eax + 0x20]
test eax, eax
jns 0x7de16b
mov eax, dword [esp]
movsx eax, word [eax + 0x28]
jmp 0x7de198
mov ecx, dword [esp]
mov edx, dword [ecx + 4]
lea ecx, [eax + eax*4]
cmp byte [edx + ecx*4 + 0xc], 0
jne 0x7de189
mov edx, dword [esp + 4]
and byte [edx + 0x38], 0xf7
mov edx, dword [esp]
mov edx, dword [edx + 4]
test byte [edx + ecx*4 + 0x10], 0x20
je 0x7de198
mov ecx, dword [esp + 4]
or byte [ecx + 0x39], 4
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov ecx, dword [ecx + 4]
mov word [ecx + edx*2], ax
mov ecx, dword [ebp]
cmp byte [ecx], 0x6f
jne 0x7de1dd
mov ebx, dword [ecx + 8]
mov ecx, ebx
call fcn.00783170
lea ecx, [eax + 1]
mov dword [esp + 0x24], eax
push ecx
push ebx
mov esi, dword [esp + 0x1c]
push esi
call fcn.0098a270
add esp, 0xc
mov eax, dword [esp + 0x24]
lea eax, [esi + eax + 1]
mov dword [esp + 0x24], eax
jmp 0x7de204
test eax, eax
jns 0x7de1ed
mov eax, dword [esp + 0x14]
xor esi, esi
mov dword [esp + 0x24], eax
jmp 0x7de204
mov ecx, dword [esp]
lea eax, [eax + eax*4]
mov edx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x24], edx
mov eax, dword [ecx + eax*4 + 8]
mov esi, eax
test esi, esi
mov ebx, str.2_p0
je 0x7de20f
mov ebx, esi
cmp byte [edi + 0xa5], 0
jne 0x7de22b
mov ecx, dword [esp + 8]
mov edx, ebx
call fcn.007f7c10
test eax, eax
je 0x7df388
mov eax, dword [esp + 4]
cmp byte [esp + 0x2b], 3
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 0x20]
mov dword [eax + ecx*4], ebx
jbe 0x7de246
movzx eax, byte [ebp + 8]
jmp 0x7de248
xor eax, eax
mov edx, dword [esp + 4]
mov esi, dword [esp + 0xc]
add ebp, 0x14
mov ecx, dword [edx + 0x1c]
mov byte [ecx + esi], al
mov ecx, dword [esp + 0x24]
inc esi
movzx eax, word [edx + 0x32]
mov dword [esp + 0xc], esi
mov dword [esp + 0x14], ecx
cmp esi, eax
jb 0x7ddf41
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x40], ecx
cmp dword [esp + 0x1c], 0
je 0x7de2fd
mov ecx, dword [esp + 0x1c]
cmp word [ecx + 0x32], 0
je 0x7de318
mov esi, dword [esp + 4]
xor ebx, ebx
movzx edx, ax
mov ecx, esi
push ebx
push dword [esp + 0x20]
call fcn.00802310
add esp, 8
test eax, eax
je 0x7de2b6
dec word [esi + 0x34]
mov edx, dword [esp + 0x1c]
jmp 0x7de2ea
mov edx, dword [esp + 0x1c]
mov ecx, dword [esi + 4]
mov ebp, dword [esp + 0xc]
mov eax, dword [edx + 4]
movzx eax, word [eax + ebx*2]
mov word [ecx + ebp*2], ax
mov eax, dword [edx + 0x20]
mov ecx, dword [esi + 0x20]
mov eax, dword [eax + ebx*4]
mov dword [ecx + ebp*4], eax
mov eax, dword [edx + 0x1c]
mov ecx, dword [esi + 0x1c]
movzx eax, byte [eax + ebx]
mov byte [ecx + ebp], al
inc ebp
mov dword [esp + 0xc], ebp
movzx eax, word [edx + 0x32]
inc ebx
cmp ebx, eax
jae 0x7de318
mov esi, dword [esp + 4]
movzx eax, word [esi + 0x32]
jmp 0x7de296
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov eax, dword [ecx + 4]
mov word [eax + edx*2], 0xffff
mov eax, dword [ecx + 0x20]
mov dword [eax + edx*4], str.2_p0
mov ecx, dword [esp + 4]
call fcn.007cb1e0
mov eax, dword [esp + 8]
cmp dword [eax + 0xe4], 0
jne 0x7de337
mov ecx, dword [esp + 4]
call fcn.00801870
mov ecx, dword [esp + 4]
call fcn.00802430
cmp dword [esp + 0x7c], 0
je 0x7de3ab
mov eax, dword [esp + 4]
mov ecx, dword [esp]
movzx eax, word [eax + 0x34]
movsx ecx, word [ecx + 0x2a]
cmp eax, ecx
jl 0x7de3ab
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x38]
mov dword [esp + 0xc], eax
or eax, 0x20
mov dword [ecx + 0x38], eax
mov eax, dword [esp]
movsx eax, word [eax + 0x2a]
test eax, eax
jle 0x7de3ab
mov ecx, dword [esp]
mov esi, eax
xor ebp, ebp
movsx ebx, word [ecx + 0x28]
cmp ebp, ebx
je 0x7de3a6
mov ecx, dword [esp + 4]
movsx edx, bp
call fcn.007fc7b0
test ax, ax
jns 0x7de3a6
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 4]
and ecx, 0xffffffdf
mov dword [eax + 0x38], ecx
jmp 0x7de3ab
inc ebp
cmp ebp, esi
jl 0x7de381
mov eax, dword [esp + 8]
mov ecx, dword [esp]
cmp ecx, dword [eax + 0xe4]
jne 0x7de70b
mov eax, dword [esp]
mov eax, dword [eax + 8]
test eax, eax
mov dword [esp + 0xc], eax
je 0x7de70b
mov eax, dword [esp + 4]
mov esi, dword [esp + 4]
movzx eax, word [eax + 0x32]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
cmp word [eax + 0x32], cx
jne 0x7de6f8
cmp word [esp + 0x14], 0
jne 0x7de3fe
xor ebx, ebx
jmp 0x7de43d
mov eax, dword [esp + 0xc]
mov ebp, dword [esi + 4]
xor ebx, ebx
mov eax, dword [eax + 4]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
movzx eax, word [eax + ebx*2]
cmp ax, word [ebp + ebx*2]
jne 0x7de43d
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x20]
mov ecx, dword [eax + ebx*4]
mov eax, dword [esi + 0x20]
mov edx, dword [eax + ebx*4]
call fcn.00783720
test eax, eax
jne 0x7de43d
inc ebx
cmp ebx, dword [esp + 0x14]
jb 0x7de40e
cmp ebx, dword [esp + 0x14]
jne 0x7de6f8
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 4]
mov al, byte [eax + 0x36]
mov cl, byte [ecx + 0x36]
cmp al, cl
je 0x7de6a8
cmp al, 0xb
je 0x7de696
cmp cl, 0xb
je 0x7de696
mov edx, fcn.007a85c0
movzx ecx, byte [0xbb92df]
imul edx, edx
and edx, 3
cmp edx, 3
sete al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x7de67c
mov al, byte [0xbb92df]
cmp edx, 3
mov ah, 1
sete cl
or cl, 4
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb92df], ah
jne 0x7de499
mov ecx, fcn.007a85c0
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 3
sete dl
or dl, 4
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7de4f3
cmp ecx, 3
movzx edx, byte [0xbb92df]
sete al
or al, 4
movzx eax, al
bt edx, eax
jae 0x7de4d7
jmp 0x7de67c
cmp ecx, 3
movzx edx, byte [0xbb92df]
sete al
or al, 4
movzx eax, al
bt edx, eax
jb 0x7de65b
mov eax, fcn.007a85c0
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 3
mov eax, dword [0xbb92b0]
sete cl
or ecx, 0x6b33c6f8
add ecx, 0x120c
mov edx, ecx
xor eax, ecx
shr edx, 0x1f
mov dword [0xbb92b0], eax
not eax
or edx, ecx
and cl, 7
imul edx, eax
mov eax, dword [0xbb92b4]
lea ebx, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb92b4], eax
or ebx, edx
not eax
mov edx, dword [0xbb92b8]
imul eax, ebx
lea ebx, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb92b8], edx
or ebx, eax
not edx
mov eax, dword [0xbb92bc]
imul edx, ebx
lea ebx, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb92bc], eax
or ebx, edx
not eax
mov edx, dword [0xbb92c0]
imul eax, ebx
mov ebx, eax
shl ebx, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbb92c0], edx
or eax, ebx
not edx
mov esi, dword [0xbb92c4]
imul edx, eax
mov ebx, edx
shl ebx, 5
xor esi, edx
shr edx, 0x1a
mov dword [0xbb92c4], esi
or edx, ebx
not esi
imul esi, edx
mov edx, dword [0xbb92c8]
mov ebx, esi
shl ebx, 6
xor edx, esi
shr esi, 0x19
mov dword [0xbb92c8], edx
or esi, ebx
not edx
mov ebp, dword [0xbb92cc]
imul edx, esi
mov ebx, edx
shl ebx, 7
xor ebp, edx
shr edx, 0x18
mov dword [0xbb92cc], ebp
or edx, ebx
not ebp
imul ebp, edx
mov edx, dword [0xbb92d0]
mov ebx, ebp
shl ebx, 8
xor edx, ebp
shr ebp, 0x17
mov dword [0xbb92d0], edx
or ebp, ebx
not edx
mov esi, dword [0xbb92d4]
imul edx, ebp
mov ebx, edx
shl ebx, 9
xor esi, edx
shr edx, 0x16
mov dword [0xbb92d4], esi
or edx, ebx
not esi
imul esi, edx
mov dl, 1
xor dword [0xbb92d8], esi
shl dl, cl
or byte [0xbb92df], dl
mov eax, fcn.007a85c0
imul eax, eax
and eax, 3
cmp eax, 3
mov al, 0xfe
sete cl
or cl, 4
xor cl, 7
rol al, cl
and byte [0xbb92df], al
push 0
push 0xbb92b0
push dword [esp + 0x10]
call fcn.0078de60
add esp, 0xc
mov eax, dword [esp + 0xc]
mov al, byte [eax + 0x36]
cmp al, 0xb
jne 0x7de6a8
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc]
mov al, byte [eax + 0x36]
mov byte [ecx + 0x36], al
cmp byte [esp + 0x98], 2
jne 0x7de6c3
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x38]
and eax, 0xfffffffc
add eax, dword [esp + 0x34]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 8]
mov dword [esp + 0xc], 0
cmp byte [eax + 0xc8], 2
jb 0x7df398
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
mov eax, dword [ecx + 0xe8]
mov dword [edx + 0x14], eax
mov dword [ecx + 0xe8], edx
jmp 0x7df373
mov eax, dword [esp + 0xc]
mov eax, dword [eax + 0x14]
test eax, eax
mov dword [esp + 0xc], eax
jne 0x7de3e0
mov eax, dword [esp + 8]
cmp byte [eax + 0xc8], 1
ja 0x7df31f
cmp byte [edi + 0xa5], 0
je 0x7de909
cmp dword [esp + 0x7c], 0
je 0x7de8db
mov ecx, dword [esp + 4]
mov eax, dword [edi + 0xa0]
mov dword [ecx + 0x2c], eax
call fcn.007cae10
test eax, eax
je 0x7de8db
mov edx, fcn.007cfc80
mov eax, fcn.007cfc80
movzx ecx, byte [0xbb92f7]
and edx, 1
xor edx, eax
cmp edx, 0xffffffff
sete al
or al, 6
movzx eax, al
bt ecx, eax
jb 0x7de8b3
mov al, byte [0xbb92f7]
cmp edx, 0xffffffff
mov ah, 1
sete cl
or cl, 6
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb92f7], ah
jne 0x7de77d
mov ecx, fcn.007cfc80
mov edx, fcn.007cfc80
movzx eax, al
and ecx, 1
xor ecx, edx
cmp ecx, 0xffffffff
sete dl
or dl, 6
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7de7db
cmp ecx, 0xffffffff
movzx edx, byte [0xbb92f7]
sete al
or al, 6
movzx eax, al
bt edx, eax
jae 0x7de7bf
jmp 0x7de8b3
cmp ecx, 0xffffffff
movzx edx, byte [0xbb92f7]
sete al
or al, 6
movzx eax, al
bt edx, eax
jb 0x7de88e
mov edx, fcn.007cfc80
mov eax, fcn.007cfc80
xor ecx, ecx
and edx, 1
xor edx, eax
mov eax, dword [0xbb92e0]
cmp edx, 0xffffffff
sete cl
or ecx, 0xb845bee
xor eax, ecx
mov dword [0xbb92e0], eax
not eax
mov edx, dword [0xbb92e4]
imul eax, ecx
and cl, 7
lea ebx, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbb92e4], edx
or ebx, eax
not edx
mov eax, dword [0xbb92e8]
imul edx, ebx
lea ebx, [edx*4]
xor eax, edx
shr edx, 0x1d
mov dword [0xbb92e8], eax
or ebx, edx
not eax
mov edx, dword [0xbb92ec]
imul eax, ebx
lea ebx, [eax*8]
xor edx, eax
shr eax, 0x1c
mov dword [0xbb92ec], edx
or ebx, eax
not edx
mov al, 1
imul edx, ebx
shl al, cl
xor dword [0xbb92f0], edx
or byte [0xbb92f7], al
mov ecx, fcn.007cfc80
mov eax, fcn.007cfc80
and ecx, 1
xor ecx, eax
mov al, 0xfe
cmp ecx, 0xffffffff
sete cl
or cl, 6
xor cl, 7
rol al, cl
and byte [0xbb92f7], al
push 0xbb92e0
mov esi, dword [esp + 0xc]
push esi
call fcn.0078de60
add esp, 8
mov ecx, 0x3f4b
call fcn.007a5560
mov dword [esi + 0xc], 0xb
jmp 0x7df390
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax]
add ecx, 0x18
push eax
call fcn.007cb740
add esp, 4
test eax, eax
je 0x7de900
mov ecx, edi
call fcn.0078a090
jmp 0x7df390
or byte [edi + 0x18], 1
jmp 0x7df31f
cmp dword [esp + 0x7c], 0
jne 0x7de91e
mov eax, dword [esp]
mov al, byte [eax + 0x24]
test al, al
js 0x7df330
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0x2c]
inc eax
mov dword [esp + 0x14], eax
mov dword [ecx + 0x2c], eax
call fcn.007f7590
test eax, eax
mov dword [esp + 0xc], eax
je 0x7de109
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x88]
mov ecx, dword [esp + 8]
mov edx, 1
push esi
call fcn.00800f40
add esp, 4
mov ebp, dword [esp + 0xc]
mov edx, 0xad
mov ecx, ebp
call fcn.007f75b0
mov ecx, dword [esp + 4]
mov edx, 0x8b
mov dword [ecx + 0x2c], eax
mov ecx, ebp
push 2
push dword [esp + 0x18]
push esi
call fcn.007d10f0
add esp, 0xc
test ebx, ebx
jne 0x7de993
xor esi, esi
jmp 0x7decc3
mov eax, fcn.00782ec0
mov edx, 3
movzx ecx, byte [0xbb9307]
sub edx, eax
mov eax, edx
xor eax, fcn.00782ec0
sete al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x7dead1
mov al, byte [0xbb9307]
mov ecx, edx
mov ah, 1
xor ecx, fcn.00782ec0
sete cl
or cl, 4
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb9307], ah
jne 0x7de9c3
mov edx, fcn.00782ec0
mov ecx, 3
movzx eax, al
sub ecx, edx
mov edx, ecx
xor edx, fcn.00782ec0
sete dl
or dl, 4
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7dea2c
mov eax, ecx
movzx edx, byte [0xbb9307]
xor eax, fcn.00782ec0
sete al
or al, 4
movzx eax, al
bt edx, eax
jae 0x7dea0c
jmp 0x7dead1
xor ecx, fcn.00782ec0
movzx ecx, byte [0xbb9307]
sete al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x7deaac
mov eax, fcn.00782ec0
mov edx, 3
xor ecx, ecx
sub edx, eax
mov eax, dword [0xbb92f8]
xor edx, fcn.00782ec0
sete cl
or ecx, 0xd07047cc
add ecx, 0x40
xor eax, ecx
mov edx, ecx
mov dword [0xbb92f8], eax
shr edx, 0x1f
not eax
mov esi, dword [0xbb92fc]
or edx, ecx
and cl, 7
imul edx, eax
lea ebx, [edx + edx]
xor esi, edx
shr edx, 0x1e
mov dword [0xbb92fc], esi
or ebx, edx
not esi
mov dl, 1
imul esi, ebx
shl dl, cl
xor dword [0xbb9300], esi
or byte [0xbb9307], dl
mov eax, fcn.00782ec0
mov ecx, 3
sub ecx, eax
mov al, 0xfe
xor ecx, fcn.00782ec0
sete cl
or cl, 4
xor cl, 7
rol al, cl
and byte [0xbb9307], al
mov edx, fcn.007bd420
xor eax, eax
movzx esi, byte [0xbb932b]
imul edx, edx
and edx, 3
cmp edx, 1
seta al
mov ecx, eax
xor ecx, 3
lea eax, [ecx + eax*2]
bt esi, eax
jb 0x7dec74
mov al, byte [0xbb932b]
xor ecx, ecx
cmp edx, 1
mov ah, 1
seta cl
mov ebx, ecx
xor ebx, 3
lea ecx, [ebx + ecx*2]
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb932b], ah
jne 0x7deb01
mov ecx, fcn.007bd420
xor edx, edx
movzx eax, al
imul ecx, ecx
and ecx, 3
cmp ecx, 1
seta dl
mov ebx, edx
xor ebx, 3
lea edx, [ebx + edx*2]
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7deb6e
xor eax, eax
cmp ecx, 1
movzx esi, byte [0xbb932b]
seta al
mov edx, eax
xor edx, 3
lea eax, [edx + eax*2]
bt esi, eax
jae 0x7deb4d
jmp 0x7dec74
xor eax, eax
cmp ecx, 1
movzx edx, byte [0xbb932b]
seta al
mov ecx, eax
xor ecx, 3
lea eax, [ecx + eax*2]
bt edx, eax
jb 0x7dec4c
mov eax, fcn.007bd420
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 1
seta cl
mov eax, ecx
xor eax, 0x4ca44fbb
lea ecx, [eax + ecx*2 + 0x88]
mov eax, dword [0xbb9310]
mov edx, ecx
shr edx, 0x1f
or edx, ecx
xor eax, ecx
and cl, 7
mov dword [0xbb9310], eax
not eax
imul edx, eax
mov eax, dword [0xbb9314]
lea ebx, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb9314], eax
or ebx, edx
not eax
mov edx, dword [0xbb9318]
imul eax, ebx
lea ebx, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb9318], edx
or ebx, eax
not edx
mov eax, dword [0xbb931c]
imul edx, ebx
lea ebx, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb931c], eax
or ebx, edx
not eax
mov edx, dword [0xbb9320]
imul eax, ebx
mov ebx, eax
shl ebx, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbb9320], edx
or eax, ebx
not edx
imul edx, eax
xor dword [0xbb9324], edx
mov dl, 1
shl dl, cl
or byte [0xbb932b], dl
mov eax, fcn.007bd420
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 1
seta cl
mov eax, ecx
xor eax, 3
lea ecx, [eax + ecx*2]
mov al, 0xfe
xor cl, 7
rol al, cl
and byte [0xbb932b], al
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 8]
mov eax, dword [eax]
mov ecx, dword [edx + 0xbc]
mov edx, dword [edx + 0xc0]
sub ecx, eax
lea ebx, [ecx + edx]
lea ecx, [ecx + edx - 1]
mov edx, 0xc26bba
cmp byte [eax + ebx - 1], 0x3b
cmovne ecx, ebx
cmp dword [esp + 0x84], 0
mov ebx, 0xbb92f8
cmove ebx, edx
push eax
push ecx
push ebx
push 0xbb9310
push edi
call fcn.0078df10
add esp, 0x14
mov esi, eax
mov edx, fcn.007a6f10
mov eax, fcn.007a6f10
movzx ebx, byte [0xbb9343]
and edx, 1
xor edx, eax
xor eax, eax
cmp edx, 0xffffffff
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
or al, 4
movzx eax, al
bt ebx, eax
jb 0x7dee59
mov al, byte [0xbb9343]
xor ecx, ecx
cmp edx, 0xffffffff
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 [0xbb9343], ah
jne 0x7decfc
mov ecx, fcn.007a6f10
mov edx, fcn.007a6f10
mov ah, 7
and ecx, 1
xor ecx, edx
xor edx, edx
cmp ecx, 0xffffffff
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 0x7ded7a
xor eax, eax
cmp ecx, 0xffffffff
movzx ebx, byte [0xbb9343]
sete al
mov edx, eax
xor edx, 1
lea eax, [eax + edx*2]
or al, 4
movzx eax, al
bt ebx, eax
jae 0x7ded54
jmp 0x7dee59
xor eax, eax
cmp ecx, 0xffffffff
movzx edx, byte [0xbb9343]
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
or al, 4
movzx eax, al
bt edx, eax
jb 0x7dee2a
mov ecx, fcn.007a6f10
mov eax, fcn.007a6f10
and ecx, 1
xor ecx, eax
xor eax, eax
cmp ecx, 0xffffffff
sete al
mov ecx, eax
not ecx
and ecx, 0x481
lea ecx, [eax + ecx*2 + 0x58982b3c]
mov eax, dword [0xbb9330]
mov edx, ecx
shr edx, 0x1f
or edx, ecx
xor eax, ecx
and cl, 7
mov dword [0xbb9330], eax
not eax
imul edx, eax
mov eax, dword [0xbb9334]
lea ebx, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb9334], eax
or ebx, edx
not eax
mov edx, dword [0xbb9338]
imul eax, ebx
lea ebx, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb9338], edx
or ebx, eax
not edx
mov al, 1
imul edx, ebx
shl al, cl
xor dword [0xbb933c], edx
or byte [0xbb9343], al
mov ecx, fcn.007a6f10
mov eax, fcn.007a6f10
mov dl, 0xfe
and ecx, 1
xor ecx, eax
xor eax, eax
cmp ecx, 0xffffffff
sete al
mov ecx, eax
xor ecx, 1
lea eax, [eax + ecx*2]
mov cl, 7
or al, 4
sub cl, al
rol dl, cl
and byte [0xbb9343], dl
mov edx, fcn.00789c30
xor eax, eax
movzx ebx, byte [0xbb9387]
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 ebx, eax
jb 0x7df0d3
mov al, byte [0xbb9387]
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 [0xbb9387], ah
jne 0x7dee8d
mov ecx, fcn.00789c30
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 0x7def02
xor eax, eax
cmp ecx, 1
movzx ebx, byte [0xbb9387]
seta al
mov edx, eax
not edx
lea eax, [edx + eax*2]
and al, 7
movzx eax, al
bt ebx, eax
jae 0x7deedd
jmp 0x7df0d3
xor eax, eax
cmp ecx, 1
movzx edx, byte [0xbb9387]
seta al
mov ecx, eax
not ecx
lea eax, [ecx + eax*2]
and al, 7
movzx eax, al
bt edx, eax
jb 0x7df0a9
mov eax, fcn.00789c30
xor ecx, ecx
imul eax, eax
and eax, 3
cmp eax, 1
seta cl
mov eax, ecx
xor eax, 0x722443e7
lea ecx, [eax + ecx*2 + 0x800]
mov eax, dword [0xbb9350]
mov edx, ecx
shr edx, 0x1f
or edx, ecx
xor eax, ecx
and cl, 7
mov dword [0xbb9350], eax
not eax
imul edx, eax
mov eax, dword [0xbb9354]
lea ebx, [edx + edx]
xor eax, edx
shr edx, 0x1e
mov dword [0xbb9354], eax
or ebx, edx
not eax
mov edx, dword [0xbb9358]
imul eax, ebx
lea ebx, [eax*4]
xor edx, eax
shr eax, 0x1d
mov dword [0xbb9358], edx
or ebx, eax
not edx
mov eax, dword [0xbb935c]
imul edx, ebx
lea ebx, [edx*8]
xor eax, edx
shr edx, 0x1c
mov dword [0xbb935c], eax
or ebx, edx
not eax
mov edx, dword [0xbb9360]
imul eax, ebx
mov ebx, eax
shl ebx, 4
xor edx, eax
shr eax, 0x1b
mov dword [0xbb9360], edx
or eax, ebx
not edx
imul edx, eax
mov eax, dword [0xbb9364]
mov ebx, edx
shl ebx, 5
xor eax, edx
shr edx, 0x1a
mov dword [0xbb9364], eax
or edx, ebx
not eax
imul eax, edx
mov edx, dword [0xbb9368]
mov ebx, eax
shl ebx, 6
xor edx, eax
shr eax, 0x19
mov dword [0xbb9368], edx
or eax, ebx
not edx
imul edx, eax
mov eax, dword [0xbb936c]
mov ebx, edx
shl ebx, 7
xor eax, edx
shr edx, 0x18
mov dword [0xbb936c], eax
or edx, ebx
not eax
imul eax, edx
mov edx, dword [0xbb9370]
mov ebx, eax
shl ebx, 8
xor edx, eax
shr eax, 0x17
mov dword [0xbb9370], edx
or eax, ebx
not edx
imul edx, eax
mov eax, dword [0xbb9374]
mov ebx, edx
shl ebx, 9
xor eax, edx
shr edx, 0x16
mov dword [0xbb9374], eax
or edx, ebx
not eax
imul eax, edx
mov edx, dword [0xbb9378]
mov ebx, eax
shl ebx, 0xa
xor edx, eax
shr eax, 0x15
mov dword [0xbb9378], edx
or eax, ebx
not edx
mov ebp, dword [0xbb937c]
imul edx, eax
mov ebx, edx
shl ebx, 0xb
xor ebp, edx
shr edx, 0x14
mov dword [0xbb937c], ebp
or edx, ebx
not ebp
imul ebp, edx
mov dl, 1
xor dword [0xbb9380], ebp
shl dl, cl
or byte [0xbb9387], dl
mov eax, fcn.00789c30
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 [0xbb9387], al
mov eax, dword [edi + 0x10]
push esi
push dword [esp + 0x18]
mov ecx, dword [esp + 8]
push dword [ecx]
mov ecx, dword [esp + 0x10]
push dword [ecx]
push 0xbb9330
mov ecx, dword [esp + 0x40]
push dword [eax + ecx]
push 0xbb9350
push dword [esp + 0x24]
call fcn.00802190
add esp, 0x20
mov ecx, edi
mov edx, esi
call fcn.00780810
cmp dword [esp + 0x7c], 0
je 0x7df30f
mov edx, fcn.00826ac0
movzx ecx, byte [0xbb93af]
and edx, 1
inc edx
mov eax, edx
xor eax, fcn.00826ac0
sete al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x7df2b6
mov al, byte [0xbb93af]
mov ecx, edx
mov ah, 1
xor ecx, fcn.00826ac0
sete cl
or cl, 4
xor cl, 7
shl ah, cl
or ah, al
lock cmpxchg byte [0xbb93af], ah
jne 0x7df145
mov ecx, fcn.00826ac0
movzx eax, al
and ecx, 1
inc ecx
mov edx, ecx
xor edx, fcn.00826ac0
sete dl
or dl, 4
xor dl, 7
movzx edx, dl
bt eax, edx
jae 0x7df1ab
mov eax, ecx
movzx edx, byte [0xbb93af]
xor eax, fcn.00826ac0
sete al
or al, 4
movzx eax, al
bt edx, eax
jae 0x7df18b
jmp 0x7df2b6
xor ecx, fcn.00826ac0
movzx ecx, byte [0xbb93af]
sete al
or al, 4
movzx eax, al
bt ecx, eax
jb 0x7df295
mov eax, fcn.00826ac0
xor ecx, ecx
and eax, 1
inc eax
xor eax, fcn.00826ac0
mov eax, dword [0xbb9390]
sete cl
or ecx, 0x45bf9d4c
xor eax, ecx
mov dword [0xbb9390], eax
not eax
mov edx, dword [0xbb9394]
imul eax, ecx
and cl, 5
lea ebx, [eax + eax]
xor edx, eax
shr eax, 0x1e
mov dword [0xbb9394], edx
or ebx, eax
not edx
mov eax, dword [0xbb9398]
imul edx, ebx
lea ebx, [edx*4]
xor eax, edx
shr edx, 0x1d
mov dword [0xbb9398], eax
or ebx, edx
not eax
mov edx, dword [0xbb939c]
imul eax, ebx
lea ebx, [eax*8]
xor edx, eax
shr eax, 0x1c
mov dword [0xbb939c], edx
or ebx, eax
not edx
mov eax, dword [0xbb93a0]
imul edx, ebx
mov ebx, edx
shl ebx, 4
xor eax, edx
shr edx, 0x1b
mov dword [0xbb93a0], eax
or edx, ebx
not eax
imul eax, edx
mov edx, dword [0xbb93a4]
mov ebx, eax
shl ebx, 5
xor edx, eax
shr eax, 0x1a
mov dword [0xbb93a4], edx
or eax, ebx
not edx
imul edx, eax
xor dword [0xbb93a8], edx
mov dl, 1
shl dl, cl
or byte [0xbb93af], dl
mov eax, fcn.00826ac0
and eax, 1
inc eax
xor eax, fcn.00826ac0
mov al, 0xfe
sete cl
or cl, 4
xor cl, 7
rol al, cl
and byte [0xbb93af], al
mov esi, dword [esp + 8]
mov ebx, dword [esp + 4]
mov ecx, esi
mov edx, ebx
push dword [esp + 0x14]
call fcn.0080ffa0
add esp, 4
mov ecx, esi
mov esi, dword [esp + 0x20]
mov edx, esi
call fcn.00802260
push dword [ebx]
push 0xbb9390
push edi
call fcn.0078df10
add esp, 0xc
mov ebx, dword [esp + 0xc]
mov edx, esi
mov ecx, ebx
push eax
call fcn.00802290
add esp, 4
mov ecx, ebx
mov edx, 0x9e
push 1
push 0
call fcn.007d10d0
add esp, 8
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc]
mov edx, dword [eax + 0x2c]
call fcn.007f75c0
cmp dword [esp + 0x7c], 0
je 0x7df330
mov al, byte [edi + 0xa5]
test al, al
je 0x7df34c
mov ebp, dword [esp]
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 0x7c]
mov esi, dword [esp + 0x10]
xor edx, edx
mov eax, dword [ebp + 8]
mov dword [ecx + 0x14], eax
mov dword [ebp + 8], ecx
jmp 0x7df3b6
mov eax, dword [esp + 8]
mov dword [esp + 0xc], 0
cmp byte [eax + 0xc8], 2
jb 0x7de111
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov dword [eax + 0xe8], ecx
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp]
mov esi, dword [esp + 0x10]
xor edx, edx
jmp 0x7df3b2
mov eax, dword [esp + 0x14]
jmp 0x7df38c
mov eax, dword [esp + 0x24]
mov dword [esp + 0x40], eax
mov dword [esp + 0xc], 0
mov edx, dword [esp + 4]
mov ecx, edi
call fcn.007cb9a0
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test ebp, ebp
je 0x7df3fc
mov eax, dword [ebp + 8]
test eax, eax
je 0x7df3fc
cmp byte [eax + 0x36], 5
jne 0x7df3f3
add ebp, 8
jmp 0x7df3d1
cmp byte [eax + 0x36], 5
jne 0x7df3f3
add ebp, 0x14
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x7df3fc
cmp byte [ecx + 0x36], 5
je 0x7df3fc
mov dword [ebp], ecx
mov ebp, edx
mov edx, dword [ecx + 0x14]
mov dword [eax + 0x14], edx
mov edx, ebp
mov dword [ecx + 0x14], eax
lea ebp, [ecx + 0x14]
jmp 0x7df3d1
mov ebp, eax
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x7df3c8
mov ecx, edi
call fcn.007cb9e0
mov edx, dword [esp + 0x18]
mov ecx, edi
call fcn.007cb9f0
mov ecx, edi
mov edx, ebx
call fcn.007cbc20
mov ecx, edi
mov edx, esi
call fcn.00780810
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00989fe9
add esp, 0x64
pop esi
pop edi
pop ebx
pop ebp
ret