Function at 0x40a530
Capabilities:
Authenticate hmac
Create thread
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42fc45
mov eax, dword fs:[0]
push eax
mov eax, 0x104c
call fcn.00422830
mov eax, dword [0x43c0d8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1058], ecx
mov eax, dword [section..data]
test eax, eax
jle 0x40ac98
dec eax
push 0
mov dword [section..data], eax
call fcn.0042622e
mov ecx, dword [ebp + 0x10]
add esp, 4
xor esi, esi
sub ecx, eax
sbb esi, edx
js 0x40a5b0
jg 0x40a595
test ecx, ecx
je 0x40a5b0
lea eax, [ebp - 0x1038]
mov dword [ebp - 0x1038], ecx
push eax
mov dword [ebp - 0x1034], esi
call fcn.00402a30
add esp, 4
mov eax, dword fs:[0x2c]
mov ecx, dword [0x43e230]
mov edi, dword [eax + ecx*4]
mov eax, dword [0x43d174]
cmp eax, dword [edi + 4]
jg 0x40acc6
cmp byte [0x43ce06], 0
jne 0x40a61c
xor edx, edx
mov dword [ebp - 0x102c], edx
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x102c]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x102c]
shr eax, 5
mov cl, dl
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [edx + 0x43ce00], cl
inc edx
mov dword [ebp - 0x102c], edx
cmp edx, 7
jl 0x40a5e1
cmp byte [0x43cc99], 0
jne 0x40a66b
xor edx, edx
mov dword [ebp - 0x102c], edx
nop dword [eax]
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x102c]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x102c]
shr eax, 5
mov cl, dl
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [edx + 0x43cc94], cl
inc edx
mov dword [ebp - 0x102c], edx
cmp edx, 6
jl 0x40a630
cmp dword [0x43d138], 0x10
mov eax, 2
mov word [ebp - 0x1028], ax
xorps xmm0, xmm0
mov eax, 0x43d124
movlpd qword [ebp - 0x1020], xmm0
cmovae eax, dword [0x43d124]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x40a6cf
cmp dword [0x43d138], 0x10
mov eax, 0x43d124
cmovae eax, dword [0x43d124]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
push 0x43d124
mov ecx, 0x43df24
mov dword [0x43d120], eax
call fcn.00410310
push dword [ebp + 0xc]
mov eax, dword [0x43d11c]
call eax
mov word [ebp - 0x1026], ax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1024], eax
mov eax, dword [0x43d1d4]
cmp eax, dword [edi + 4]
jg 0x40ae27
cmp byte [0x43ce06], 0
jne 0x40a74b
xor edx, edx
mov dword [ebp - 0x102c], edx
nop dword [eax + eax]
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x102c]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x102c]
shr eax, 5
mov cl, dl
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [edx + 0x43ce00], cl
inc edx
mov dword [ebp - 0x102c], edx
cmp edx, 7
jl 0x40a710
cmp byte [0x43ce46], 0
jne 0x40a79b
xor edx, edx
mov dword [ebp - 0x102c], edx
nop dword [eax]
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x102c]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x102c]
shr eax, 5
mov cl, dl
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [edx + 0x43ce40], cl
inc edx
mov dword [ebp - 0x102c], edx
cmp edx, 7
jl 0x40a760
mov eax, dword [0x43d234]
mov esi, dword [0x43e228]
cmp eax, dword [edi + 4]
jg 0x40af87
cmp byte [0x43ce06], 0
jne 0x40a7fe
xor edx, edx
mov dword [ebp - 0x102c], edx
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x102c]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x102c]
shr eax, 5
mov cl, dl
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [edx + 0x43ce00], cl
inc edx
mov dword [ebp - 0x102c], edx
cmp edx, 7
jl 0x40a7c3
cmp byte [0x43cdcf], 0
jne 0x40a956
xor edx, edx
mov dword [ebp - 0x102c], edx
cmp esi, 2
jl 0x40a920
movaps xmm2, xmmword [0x4327b0]
mov eax, 4
movaps xmm4, xmmword [0x432800]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
mov ecx, 0x43cdc8
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
movd xmm5, eax
mov eax, 0x1f
psrad xmm1, xmm5
movaps xmm0, xmm1
movd xmm6, eax
mov eax, dword [str.5555555555555555]
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4327d0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x4327c0]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x4327e0]
packuswb xmm1, xmm1
movd xmm0, eax
paddb xmm1, xmm0
movd xmm0, dword [ecx]
xorps xmm1, xmm0
movaps xmm0, xmm2
movd dword [ecx], xmm1
movaps xmm1, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm5
movaps xmm0, xmm1
psrld xmm0, xmm6
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4327d0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x4327e0]
movd xmm0, eax
mov eax, 0x43cdcc
packuswb xmm1, xmm1
paddb xmm1, xmm0
movd xmm0, dword [eax]
xorps xmm1, xmm0
movd dword [eax], xmm1
jmp 0x40a956
mov eax, 0x4bda12f7
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x102c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [edx + 0x43cdc8], cl
inc edx
mov dword [ebp - 0x102c], edx
cmp edx, 8
jl 0x40a920
mov eax, dword [0x43d294]
cmp eax, dword [edi + 4]
jg 0x40b1e2
cmp byte [0x43ce06], 0
jne 0x40a9bb
xor edx, edx
mov dword [ebp - 0x102c], edx
nop dword [eax + eax]
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x102c]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x102c]
shr eax, 5
mov cl, dl
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [edx + 0x43ce00], cl
inc edx
mov dword [ebp - 0x102c], edx
cmp edx, 7
jl 0x40a980
cmp byte [0x43cc38], 0
jne 0x40aa0b
xor edx, edx
mov dword [ebp - 0x102c], edx
nop dword [eax]
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x102c]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x102c]
shr eax, 5
mov cl, dl
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [edx + 0x43cc34], cl
inc edx
mov dword [ebp - 0x102c], edx
cmp edx, 5
jl 0x40a9d0
mov eax, dword [0x43d2f4]
cmp eax, dword [edi + 4]
jg 0x40b347
cmp byte [0x43ce06], 0
jne 0x40aa6b
xor edx, edx
mov dword [ebp - 0x102c], edx
nop dword [eax]
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x102c]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x102c]
shr eax, 5
mov cl, dl
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [edx + 0x43ce00], cl
inc edx
mov dword [ebp - 0x102c], edx
cmp edx, 7
jl 0x40aa30
cmp byte [0x43cd1c], 0
jne 0x40aabb
xor edx, edx
mov dword [ebp - 0x102c], edx
nop dword [eax]
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x102c]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x102c]
shr eax, 5
mov cl, dl
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [edx + 0x43cd18], cl
inc edx
mov dword [ebp - 0x102c], edx
cmp edx, 5
jl 0x40aa80
push 0x1000
lea eax, [ebp - 0x1010]
push 0
push eax
call fcn.00424230
lea eax, [ebp - 0x1011]
mov byte [ebp - 0x1011], 0
mov dword [ebp - 0x103c], eax
lea esi, [ebp - 0x1028]
lea eax, [ebp - 0x1018]
mov dword [ebp - 0x1018], 0
push 0xc
mov dword [ebp - 0x1038], eax
call fcn.004223bb
add esp, 0x10
test eax, eax
je 0x40ab1c
movq xmm0, qword [ebp - 0x103c]
movq qword [eax], xmm0
mov dword [eax + 8], esi
jmp 0x40ab1e
xor eax, eax
mov dword [ebp - 0x1034], eax
lea ecx, [ebp - 0x102c]
mov dword [ebp - 4], 0xf
push ecx
push 0
push eax
push 0x402400
push 0
push 0
call fcn.0042642e
add esp, 0x18
mov dword [ebp - 0x1030], eax
test eax, eax
je 0x40acb5
mov ecx, dword [ebp - 0x102c]
mov dword [ebp - 4], 0x10
test ecx, ecx
je 0x40b4a7
push ecx
push eax
call fcn.00421b87
add esp, 8
test eax, eax
jne 0x40b4a7
mov dword [ebp - 4], 0xffffffff
cmp byte [0x43cc19], al
jne 0x40ac4e
mov esi, dword [ebp + 0x10]
add esi, dword [ebp + 0x14]
mov edi, dword [ebp + 0x18]
mov dword [ebp - 0x102c], esi
nop dword [eax]
push 0
call fcn.0042622e
add esp, 4
cmp eax, esi
ja 0x40ac4e
xor esi, esi
test edi, edi
je 0x40abd7
call fcn.00425e26
and eax, 0x800000ff
jns 0x40abcb
dec eax
or eax, 0xffffff00
inc eax
mov byte [ebp + esi - 0x1010], al
inc esi
cmp esi, edi
jb 0x40abb8
cmp dword [0x43d258], 0x10
mov eax, 0x43d244
mov esi, dword [ebp - 0x1018]
cmovae eax, dword [0x43d244]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x40ac2a
cmp dword [0x43d258], 0x10
mov eax, 0x43d244
cmovae eax, dword [0x43d244]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
push 0x43d244
mov ecx, 0x43df24
mov dword [0x43d240], eax
call fcn.00410310
push 0
push edi
lea eax, [ebp - 0x1010]
push eax
push esi
call dword [0x43d23c]
cmp byte [0x43cc19], 0
mov esi, dword [ebp - 0x102c]
je 0x40aba0
inc dword [section..data]
mov byte [ebp - 0x1011], 1
mov dword [ebp - 0x1038], 0x3e8
mov dword [ebp - 0x1034], 0
nop
lea eax, [ebp - 0x1038]
push eax
call fcn.00402ad0
add esp, 4
cmp byte [ebp - 0x1011], 0
jne 0x40ac70
push 1
push dword [ebp - 0x1058]
call fcn.004223eb
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042264a
mov esp, ebp
pop ebp
ret 0x14
push 6
mov dword [ebp - 0x102c], 0
call fcn.00421ea1
push 0x43d174
call fcn.00422334
add esp, 4
cmp dword [0x43d174], 0xffffffff
jne 0x40a5d0
push 0x5c
push 0
push 0x43d118
mov dword [ebp - 4], 0
call fcn.00424230
add esp, 0xc
cmp byte [0x43ce06], 0
je 0x40ad4d
xor edx, edx
mov dword [ebp - 0x102c], edx
jmp 0x40ad10
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x102c]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x102c]
shr eax, 5
mov cl, dl
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [edx + 0x43ce00], cl
inc edx
mov dword [ebp - 0x102c], edx
cmp edx, 7
jl 0x40ad10
jmp 0x40ad4d
push 0x43ce00
lea ecx, [ebp - 0x1054]
call fcn.00405440
cmp byte [0x43cc99], 0
push 0
mov byte [ebp - 4], 1
push 1
je 0x40adbd
xor edx, edx
mov dword [ebp - 0x102c], edx
jmp 0x40ad80
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x102c]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x102c]
shr eax, 5
mov cl, dl
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [edx + 0x43cc94], cl
inc edx
mov dword [ebp - 0x102c], edx
cmp edx, 6
jl 0x40ad80
jmp 0x40adbd
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x102c], esp
push 0x43cc94
call fcn.00405440
sub esp, 0x18
mov byte [ebp - 4], 2
mov eax, esp
lea ecx, [ebp - 0x1054]
push ecx
push eax
call fcn.00421410
add esp, 8
mov byte [ebp - 4], 1
mov ecx, 0x43d118
call fcn.00403000
lea ecx, [ebp - 0x1054]
call fcn.00405aa0
push 0x430f60
call fcn.00422635
push 0x43d174
mov dword [ebp - 4], 0xffffffff
call fcn.004222e3
add esp, 8
jmp 0x40a5d0
push 0x43d1d4
call fcn.00422334
add esp, 4
cmp dword [0x43d1d4], 0xffffffff
jne 0x40a6fa
push 0x5c
push 0
push 0x43d178
mov dword [ebp - 4], 3
call fcn.00424230
add esp, 0xc
cmp byte [0x43ce06], 0
je 0x40aead
xor edx, edx
mov dword [ebp - 0x102c], edx
jmp 0x40ae70
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x102c]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x102c]
shr eax, 5
mov cl, dl
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [edx + 0x43ce00], cl
inc edx
mov dword [ebp - 0x102c], edx
cmp edx, 7
jl 0x40ae70
jmp 0x40aead
push 0x43ce00
lea ecx, [ebp - 0x1054]
call fcn.00405440
cmp byte [0x43ce46], 0
push 0
mov byte [ebp - 4], 4
push 1
je 0x40af1d
xor edx, edx
mov dword [ebp - 0x102c], edx
jmp 0x40aee0
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x102c]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x102c]
shr eax, 5
mov cl, dl
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [edx + 0x43ce40], cl
inc edx
mov dword [ebp - 0x102c], edx
cmp edx, 7
jl 0x40aee0
jmp 0x40af1d
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1034], esp
push 0x43ce40
call fcn.00405440
sub esp, 0x18
mov byte [ebp - 4], 5
mov eax, esp
lea ecx, [ebp - 0x1054]
push ecx
push eax
call fcn.00421410
add esp, 8
mov byte [ebp - 4], 4
mov ecx, 0x43d178
call fcn.00404a40
lea ecx, [ebp - 0x1054]
call fcn.00405aa0
push 0x4311e0
call fcn.00422635
push 0x43d1d4
mov dword [ebp - 4], 0xffffffff
call fcn.004222e3
add esp, 8
jmp 0x40a6fa
push 0x43d234
call fcn.00422334
add esp, 4
cmp dword [0x43d234], 0xffffffff
jne 0x40a7b2
push 0x5c
push 0
push 0x43d1d8
mov dword [ebp - 4], 6
call fcn.00424230
add esp, 0xc
cmp byte [0x43ce06], 0
je 0x40b00d
xor edx, edx
mov dword [ebp - 0x102c], edx
jmp 0x40afd0
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x102c]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x102c]
shr eax, 5
mov cl, dl
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [edx + 0x43ce00], cl
inc edx
mov dword [ebp - 0x102c], edx
cmp edx, 7
jl 0x40afd0
jmp 0x40b00d
push 0x43ce00
lea ecx, [ebp - 0x1054]
call fcn.00405440
cmp byte [0x43cdcf], 0
push 0
mov byte [ebp - 4], 7
push 1
je 0x40b178
xor edx, edx
mov dword [ebp - 0x102c], edx
cmp esi, 2
jl 0x40b140
movaps xmm2, xmmword [0x4327b0]
mov eax, 4
movaps xmm3, xmmword [0x432800]
movaps xmm1, xmm2
punpckldq xmm1, xmm2
movaps xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
movd xmm4, eax
mov eax, 0x1f
psrad xmm1, xmm4
movaps xmm0, xmm1
movd xmm5, eax
mov eax, 0x43cdc8
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4327d0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movaps xmm2, xmmword [0x4327c0]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x4327e0]
movd xmm0, dword [eax]
packuswb xmm1, xmm1
paddb xmm1, xmmword [str.5555555555555555]
xorps xmm1, xmm0
movaps xmm0, xmm2
movd dword [eax], xmm1
movaps xmm1, xmm2
punpckldq xmm1, xmm2
mov eax, 0x43cdcc
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
pmuldq xmm1, xmm3
shufps xmm1, xmm0, 0xdd
psrad xmm1, xmm4
movaps xmm0, xmm1
psrld xmm0, xmm5
paddd xmm0, xmm1
pmulld xmm0, xmmword [0x4327d0]
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
andps xmm1, xmmword [0x4327e0]
movd xmm0, dword [eax]
packuswb xmm1, xmm1
paddb xmm1, xmmword [str.5555555555555555]
xorps xmm1, xmm0
movd dword [eax], xmm1
jmp 0x40b178
mov eax, 0x4bda12f7
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x102c]
movsx eax, al
mov cl, dl
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [edx + 0x43cdc8], cl
inc edx
mov dword [ebp - 0x102c], edx
cmp edx, 8
jl 0x40b140
jmp 0x40b178
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1034], esp
push 0x43cdc8
call fcn.00405440
sub esp, 0x18
mov byte [ebp - 4], 8
mov eax, esp
lea ecx, [ebp - 0x1054]
push ecx
push eax
call fcn.00421410
add esp, 8
mov byte [ebp - 4], 7
mov ecx, 0x43d1d8
call fcn.00404180
lea ecx, [ebp - 0x1054]
call fcn.00405aa0
push 0x430f40
call fcn.00422635
push 0x43d234
mov dword [ebp - 4], 0xffffffff
call fcn.004222e3
add esp, 8
jmp 0x40a7b2
push 0x43d294
call fcn.00422334
add esp, 4
cmp dword [0x43d294], 0xffffffff
jne 0x40a967
push 0x5c
push 0
push 0x43d238
mov dword [ebp - 4], 9
call fcn.00424230
add esp, 0xc
cmp byte [0x43ce06], 0
je 0x40b26d
xor edx, edx
mov dword [ebp - 0x102c], edx
jmp 0x40b230
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x102c]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x102c]
shr eax, 5
mov cl, dl
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [edx + 0x43ce00], cl
inc edx
mov dword [ebp - 0x102c], edx
cmp edx, 7
jl 0x40b230
jmp 0x40b26d
push 0x43ce00
lea ecx, [ebp - 0x1054]
call fcn.00405440
cmp byte [0x43cc38], 0
push 0
mov byte [ebp - 4], 0xa
push 1
je 0x40b2dd
xor edx, edx
mov dword [ebp - 0x102c], edx
jmp 0x40b2a0
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x102c]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x102c]
shr eax, 5
mov cl, dl
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [edx + 0x43cc34], cl
inc edx
mov dword [ebp - 0x102c], edx
cmp edx, 5
jl 0x40b2a0
jmp 0x40b2dd
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1034], esp
push 0x43cc34
call fcn.00405440
sub esp, 0x18
mov byte [ebp - 4], 0xb
mov eax, esp
lea ecx, [ebp - 0x1054]
push ecx
push eax
call fcn.00421410
add esp, 8
mov byte [ebp - 4], 0xa
mov ecx, 0x43d238
call fcn.004038c0
lea ecx, [ebp - 0x1054]
call fcn.00405aa0
push 0x4310c0
call fcn.00422635
push 0x43d294
mov dword [ebp - 4], 0xffffffff
call fcn.004222e3
add esp, 8
jmp 0x40a967
push 0x43d2f4
call fcn.00422334
add esp, 4
cmp dword [0x43d2f4], 0xffffffff
jne 0x40aa1c
push 0x5c
push 0
push 0x43d298
mov dword [ebp - 4], 0xc
call fcn.00424230
add esp, 0xc
cmp byte [0x43ce06], 0
je 0x40b3cd
xor edx, edx
mov dword [ebp - 0x102c], edx
jmp 0x40b390
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x102c]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x102c]
shr eax, 5
mov cl, dl
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [edx + 0x43ce00], cl
inc edx
mov dword [ebp - 0x102c], edx
cmp edx, 7
jl 0x40b390
jmp 0x40b3cd
push 0x43ce00
lea ecx, [ebp - 0x1054]
call fcn.00405440
cmp byte [0x43cd1c], 0
push 0
mov byte [ebp - 4], 0xd
push 1
je 0x40b43d
xor edx, edx
mov dword [ebp - 0x102c], edx
jmp 0x40b400
mov eax, 0x2f684bdb
mul edx
mov eax, dword [ebp - 0x102c]
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [ebp - 0x102c]
shr eax, 5
mov cl, dl
movsx eax, al
imul eax, eax, 0x36
sub cl, al
add cl, 0x35
xor byte [edx + 0x43cd18], cl
inc edx
mov dword [ebp - 0x102c], edx
cmp edx, 5
jl 0x40b400
jmp 0x40b43d
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1034], esp
push 0x43cd18
call fcn.00405440
sub esp, 0x18
mov byte [ebp - 4], 0xe
mov eax, esp
lea ecx, [ebp - 0x1054]
push ecx
push eax
call fcn.00421410
add esp, 8
mov byte [ebp - 4], 0xd
mov ecx, 0x43d298
call fcn.004038c0
lea ecx, [ebp - 0x1054]
call fcn.00405aa0
push 0x4310a0
call fcn.00422635
push 0x43d2f4
mov dword [ebp - 4], 0xffffffff
call fcn.004222e3
add esp, 8
jmp 0x40aa1c
push 1
call fcn.00421ea1
int3