Function at 0x403010
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x505556
mov eax, dword fs:[0]
push eax
sub esp, 0x30
push ebx
push esi
push edi
mov eax, dword [0x565680]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x14], 0
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], 0
call fcn.0040a540
test al, al
jne 0x4030f6
mov edx, dword [0x566ac0]
xor esi, esi
mov ecx, esi
and ecx, 1
dec ecx
not ecx
and ecx, edx
mov eax, esi
sar eax, 1
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, edx
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
sar eax, 1
not ecx
and ecx, edx
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, edx
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
sar eax, 1
not ecx
and ecx, edx
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, edx
sar ecx, 1
xor eax, ecx
mov ecx, eax
and ecx, 1
dec ecx
sar eax, 1
not ecx
and ecx, edx
xor ecx, eax
mov eax, ecx
and eax, 1
dec eax
not eax
and eax, edx
sar ecx, 1
xor eax, ecx
inc esi
add edx, eax
cmp esi, 0x100
jl 0x403073
mov dword [0x566ac0], edx
lea eax, [ebx + 0x1c]
push eax
lea eax, [ebp - 0x20]
push 0x518e90
push eax
call fcn.00402bc0
add esp, 0xc
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
push dword [eax - 0xc]
mov byte [ebp - 4], 1
push eax
call fcn.00402de0
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
or edi, 0xffffffff
mov byte [ebp - 4], 0
lea ecx, [edx + 0xc]
mov eax, edi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x403140
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov eax, str.AND_b
mov byte [ebp - 4], 2
test eax, 0xffff0000
jne 0x403181
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x403190
push esi
push eax
lea ecx, [ebp - 0x18]
call fcn.004073a0
jmp 0x403190
push 7
push str.AND_b
lea ecx, [ebp - 0x18]
call fcn.00409940
push 0x518ea8
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x24]
push eax
mov byte [ebp - 4], 3
call fcn.00402ae0
add ebx, 0x24
push ebx
push eax
lea eax, [ebp - 0x20]
push eax
mov byte [ebp - 4], 4
call fcn.00402a20
add esp, 0x18
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
push dword [eax - 0xc]
mov byte [ebp - 4], 5
push eax
call fcn.00402de0
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov byte [ebp - 4], 4
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4031ed
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
mov byte [ebp - 4], 3
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40320d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40322d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x566ac0]
imul eax, eax
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x403241
dec eax
or eax, 0xfffffff8
inc eax
cmp eax, 6
jne 0x40325c
call fcn.004e5d44
mov ecx, dword [0x566ac0]
cmp ecx, eax
jne 0x40325c
dec ecx
mov dword [0x566ac0], ecx
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov eax, str.AND_ib
mov byte [ebp - 4], 6
test eax, 0xffff0000
jne 0x40329d
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x4032ac
push esi
push eax
lea ecx, [ebp - 0x18]
call fcn.004073a0
jmp 0x4032ac
push 8
push str.AND_ib
lea ecx, [ebp - 0x18]
call fcn.00409940
push 0x518ea8
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push eax
mov byte [ebp - 4], 7
call fcn.00402ae0
push ebx
push eax
lea eax, [ebp - 0x24]
push eax
mov byte [ebp - 4], 8
call fcn.00402a20
add esp, 0x18
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
push dword [eax - 0xc]
mov byte [ebp - 4], 9
push eax
call fcn.00402de0
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
mov byte [ebp - 4], 8
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403306
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov byte [ebp - 4], 7
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403326
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403346
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, dword [ebp - 0x1c]
lea eax, [ebx + 0x28]
push eax
lea eax, [ebp - 0x24]
push str.AND_verifier
push eax
call fcn.00402bc0
add esp, 0xc
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
push dword [eax - 0xc]
mov byte [ebp - 4], 0xa
push eax
call fcn.00402de0
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403390
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebx + 0x40]
push eax
lea eax, [ebp - 0x24]
push str.AND_ver
push eax
call fcn.00402bc0
add esp, 0xc
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
push dword [eax - 0xc]
mov byte [ebp - 4], 0xb
push eax
call fcn.00402de0
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4033d7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov eax, str.AND_insta
mov byte [ebp - 4], 0xc
test eax, 0xffff0000
jne 0x403418
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x403427
push esi
push eax
lea ecx, [ebp - 0x18]
call fcn.004073a0
jmp 0x403427
push 0xb
push str.AND_insta
lea ecx, [ebp - 0x18]
call fcn.00409940
push str.lltime
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push eax
mov byte [ebp - 4], 0xd
call fcn.00402ae0
lea ecx, [ebx + 0x48]
push ecx
push eax
lea eax, [ebp - 0x24]
push eax
mov byte [ebp - 4], 0xe
call fcn.00402a20
add esp, 0x18
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
push dword [eax - 0xc]
mov byte [ebp - 4], 0xf
push eax
call fcn.00402de0
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xe
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403484
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xd
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4034a4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4034c4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x20]
push eax
call fcn.00464530
push eax
lea eax, [ebp - 0x24]
push str.AND_os
push eax
mov byte [ebp - 4], 0x10
call fcn.00402bc0
add esp, 0x10
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
push dword [eax - 0xc]
mov byte [ebp - 4], 0x11
push eax
call fcn.00402de0
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x10
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403515
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403535
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov eax, str.AND_bro
mov byte [ebp - 4], 0x12
test eax, 0xffff0000
jne 0x403576
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x403585
push esi
push eax
lea ecx, [ebp - 0x18]
call fcn.004073a0
jmp 0x403585
push 9
push str.AND_bro
lea ecx, [ebp - 0x18]
call fcn.00409940
push str.wser
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x20]
push eax
mov byte [ebp - 4], 0x13
call fcn.00402ae0
push 0x566fb0
push eax
lea eax, [ebp - 0x24]
push eax
mov byte [ebp - 4], 0x14
call fcn.00402a20
add esp, 0x18
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
push dword [eax - 0xc]
mov byte [ebp - 4], 0x15
push eax
call fcn.00402de0
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x14
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4035e3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x13
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403603
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403623
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x566fb0]
mov ecx, 0x518f68
lea ecx, [ecx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x403656
test dx, dx
je 0x403652
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x403656
add eax, 4
add ecx, 4
test dx, dx
jne 0x403630
xor eax, eax
jmp 0x40365b
sbb eax, eax
or eax, 1
test eax, eax
sete al
test al, al
je 0x40367e
lea eax, [ebp - 0x30]
push eax
call fcn.004636e0
add esp, 4
mov dword [ebp - 0x20], eax
mov byte [ebp - 4], 0x16
mov ebx, 1
jmp 0x403699
lea eax, [ebp - 0x2c]
push eax
call fcn.00461f50
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0x17
mov ebx, 2
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
mov dword [ebp - 0x14], ebx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov eax, str.AND_brow
mov dword [ebp - 4], 0x18
test eax, 0xffff0000
jne 0x4036e0
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x4036ef
push esi
push eax
lea ecx, [ebp - 0x18]
call fcn.004073a0
jmp 0x4036ef
push 0xa
push str.AND_brow
lea ecx, [ebp - 0x18]
call fcn.00409940
push 0x518f70
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x28]
push eax
mov dword [ebp - 4], 0x19
call fcn.00402ae0
push dword [ebp - 0x20]
mov byte [ebp - 4], 0x1a
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00402a20
add esp, 0x18
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
push dword [eax - 0xc]
mov byte [ebp - 4], 0x1b
push eax
call fcn.00402de0
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x1a
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40374e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x19
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40376e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x17
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40378e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0x16
test bl, 2
je 0x4037bc
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
and ebx, 0xfffffffd
mov dword [ebp - 0x14], ebx
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4037bc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0
test bl, 1
je 0x4037ea
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
and ebx, 0xfffffffe
mov dword [ebp - 0x14], ebx
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4037ea
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x2c]
push eax
call fcn.00462ab0
push eax
lea eax, [ebp - 0x30]
push str.AND_ffver
push eax
mov byte [ebp - 4], 0x1c
call fcn.00402bc0
add esp, 0x10
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
push dword [eax - 0xc]
mov byte [ebp - 4], 0x1d
push eax
call fcn.00402de0
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x1c
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40383b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40385b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x566fb0]
mov ecx, 0x518f68
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40388b
test dx, dx
je 0x403887
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40388b
add eax, 4
add ecx, 4
test dx, dx
jne 0x403865
xor eax, eax
jmp 0x403890
sbb eax, eax
or eax, 1
test eax, eax
sete al
test al, al
je 0x4038ca
lea eax, [ebp - 0x24]
push eax
call fcn.00461f50
push eax
lea eax, [ebp - 0x28]
push str.AND_chromever
or ebx, 4
push eax
mov byte [ebp - 4], 0x1e
mov dword [ebp - 0x14], ebx
call fcn.00402bc0
add esp, 0x10
mov dword [ebp - 4], 0x1f
or ebx, 8
jmp 0x4038fc
lea eax, [ebp - 0x2c]
push eax
call fcn.004636e0
push eax
lea eax, [ebp - 0x30]
push str.AND_iever
or ebx, 0x10
push eax
mov dword [ebp - 4], 0x20
mov dword [ebp - 0x14], ebx
call fcn.00402bc0
add esp, 0x10
mov dword [ebp - 4], 0x21
or ebx, 0x20
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
push dword [eax - 0xc]
mov dword [ebp - 0x14], ebx
push eax
call fcn.00402de0
mov dword [ebp - 4], 0x20
test bl, 0x20
je 0x40393b
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
and ebx, 0xffffffdf
mov dword [ebp - 0x14], ebx
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40393b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0x1f
test bl, 0x10
je 0x403969
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
and ebx, 0xffffffef
mov dword [ebp - 0x14], ebx
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403969
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0x1e
test bl, 8
je 0x403997
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
and ebx, 0xfffffff7
mov dword [ebp - 0x14], ebx
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403997
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0
test bl, 4
je 0x4039bf
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
mov ecx, edi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4039bf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, dword [ebp - 0x1c]
add ebx, 0x4c
lea eax, [ebp - 0x24]
push ebx
push eax
call fcn.0048eb50
add esp, 8
mov dword [ebp - 0x30], eax
mov edx, dword [0x5651b8]
mov ecx, 0x5651b8
mov byte [ebp - 4], 0x22
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov eax, str.AND_src
mov byte [ebp - 4], 0x23
test eax, 0xffff0000
jne 0x403a1b
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x403a2a
push esi
push eax
lea ecx, [ebp - 0x18]
call fcn.004073a0
jmp 0x403a2a
push 9
push str.AND_src
lea ecx, [ebp - 0x18]
call fcn.00409940
push 0x518ff4
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x28]
push eax
mov byte [ebp - 4], 0x24
call fcn.00402ae0
push dword [ebp - 0x30]
mov byte [ebp - 4], 0x25
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00402a20
add esp, 0x18
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
push dword [eax - 0xc]
mov byte [ebp - 4], 0x26
push eax
call fcn.00402de0
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x25
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403a86
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x24
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403aa6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x22
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403ac6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403ae6
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x28]
push ebx
push eax
call fcn.0048eb50
add esp, 8
mov ebx, eax
mov edx, dword [0x5651b8]
mov ecx, 0x5651b8
mov byte [ebp - 4], 0x27
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov eax, str.AND_cam
mov byte [ebp - 4], 0x28
test eax, 0xffff0000
jne 0x403b3b
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x403b4a
push esi
push eax
lea ecx, [ebp - 0x18]
call fcn.004073a0
jmp 0x403b4a
push 9
push str.AND_cam
lea ecx, [ebp - 0x18]
call fcn.00409940
push str.paign
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x29
call fcn.00402ae0
push ebx
push eax
lea eax, [ebp - 0x30]
push eax
mov byte [ebp - 4], 0x2a
call fcn.00402a20
add esp, 0x18
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
push dword [eax - 0xc]
mov byte [ebp - 4], 0x2b
push eax
call fcn.00402de0
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x2a
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403ba4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x29
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403bc4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x27
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403be4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403c04
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov eax, str.AND_subiddefau
mov byte [ebp - 4], 0x2c
test eax, 0xffff0000
jne 0x403c45
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x403c54
push esi
push eax
lea ecx, [ebp - 0x18]
call fcn.004073a0
jmp 0x403c54
push 0x11
push str.AND_subiddefau
lea ecx, [ebp - 0x18]
call fcn.00409940
push str.lt_subid
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x30]
push eax
mov byte [ebp - 4], 0x2d
call fcn.00402ae0
add esp, 0xc
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
push dword [eax - 0xc]
mov byte [ebp - 4], 0x2e
push eax
call fcn.00402de0
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x2d
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403c9f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403cbf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov eax, str.AND_zdatade
mov byte [ebp - 4], 0x2f
test eax, 0xffff0000
jne 0x403d00
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x403d0f
push esi
push eax
lea ecx, [ebp - 0x18]
call fcn.004073a0
jmp 0x403d0f
push 0xe
push str.AND_zdatade
lea ecx, [ebp - 0x18]
call fcn.00409940
push str.fault_z
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x30
call fcn.00402ae0
push 0x51906c
push eax
lea eax, [ebp - 0x30]
push eax
mov byte [ebp - 4], 0x31
call fcn.00402ae0
add esp, 0x18
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
push dword [eax - 0xc]
mov byte [ebp - 4], 0x32
push eax
call fcn.00402de0
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x31
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403d6d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x30
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403d8d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403dad
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov eax, str.AND_iep
mov byte [ebp - 4], 0x33
test eax, 0xffff0000
jne 0x403dee
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x403dfd
push esi
push eax
lea ecx, [ebp - 0x18]
call fcn.004073a0
jmp 0x403dfd
push 9
push str.AND_iep
lea ecx, [ebp - 0x18]
call fcn.00409940
push 0x5190b8
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x28]
push eax
mov byte [ebp - 4], 0x34
call fcn.00402ae0
push 0x5190a8
push eax
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x35
call fcn.00402ae0
mov esi, eax
mov byte [ebp - 4], 0x36
call fcn.0040ba10
push eax
lea eax, [ebp - 0x30]
push esi
push eax
call fcn.004653f0
add esp, 0x24
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
push dword [eax - 0xc]
mov byte [ebp - 4], 0x37
push eax
call fcn.00402de0
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x36
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403e71
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x35
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403e91
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x34
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403eb1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403ed1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov eax, str.AND_chprofiles
mov byte [ebp - 4], 0x38
test eax, 0xffff0000
jne 0x403f12
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x403f1f
push esi
push eax
lea ecx, [ebp - 0x18]
call fcn.004073a0
jmp 0x403f1f
push str.AND_chprofiles
lea ecx, [ebp - 0x18]
call fcn.004027b0
mov byte [ebp - 4], 0x39
call fcn.0040b750
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.004653f0
add esp, 0xc
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
push dword [eax - 0xc]
mov byte [ebp - 4], 0x3a
push eax
call fcn.00402de0
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x39
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403f6b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x403f8b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov eax, str.AND_ffprofiles
mov byte [ebp - 4], 0x3b
test eax, 0xffff0000
jne 0x403fcc
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x403fd9
push esi
push eax
lea ecx, [ebp - 0x18]
call fcn.004073a0
jmp 0x403fd9
push str.AND_ffprofiles
lea ecx, [ebp - 0x18]
call fcn.004027b0
mov byte [ebp - 4], 0x3c
call fcn.0040b8b0
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.004653f0
add esp, 0xc
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
push dword [eax - 0xc]
mov byte [ebp - 4], 0x3d
push eax
call fcn.00402de0
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x3c
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404025
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404045
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.0040a540
test al, al
jne 0x404098
mov ax, word [0x519104]
movq xmm0, qword [str.oMRQCQ3Hm]
mov word [ebp - 0x34], ax
lea eax, [ebp - 0x3c]
movq qword [ebp - 0x3c], xmm0
lea edx, [eax + 1]
jmp 0x404070
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x404070
sub eax, edx
xor ecx, ecx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004e3d44
push eax
call fcn.004e5e73
add esp, 8
mov eax, dword [0x5651b8]
mov ecx, 0x5651b8
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov eax, 0x51910c
mov byte [ebp - 4], 0x3e
test eax, 0xffff0000
jne 0x4040d9
movzx esi, ax
push 0
push esi
call fcn.00402f50
add esp, 8
test eax, eax
je 0x4040e8
push esi
push eax
lea ecx, [ebp - 0x18]
call fcn.004073a0
jmp 0x4040e8
push 0xd
push 0x51910c
lea ecx, [ebp - 0x18]
call fcn.00409940
push 0x519108
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 0x3f
call fcn.00402ae0
mov ecx, dword [ebp - 0x1c]
add ecx, 0x70
push ecx
push eax
lea eax, [ebp - 0x30]
push eax
mov byte [ebp - 4], 0x40
call fcn.00402a20
add esp, 0x18
mov eax, dword [eax]
lea ecx, [ebp - 0x10]
push dword [eax - 0xc]
mov byte [ebp - 4], 0x41
push eax
call fcn.00402de0
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x40
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404148
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov byte [ebp - 4], 0x3f
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404168
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x404188
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x10]
push eax
push esi
call fcn.0048e880
mov ebx, dword [ebp - 0x10]
add ebx, 0xfffffff0
add esp, 8
mov dword [ebp - 4], 0xffffffff
lea eax, [ebx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x4041b9
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4