Function at 0x40b3bb
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x47092d
call fcn.0046ffb4
sub esp, 0x70
push ebx
push esi
push edi
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x5ae7a8]
and dword [eax + 0x20], 0
call fcn.0040734a
call fcn.004097ef
cmp dword [0x5ae838], 0xf
mov ecx, 0x5ae824
push 0x80e2
cmova ecx, dword [0x5ae824]
xor edx, edx
call fcn.00434882
pop ecx
push dword [ebp - 0x23]
push ecx
lea ecx, [ebp - 0x64]
call fcn.00414bd8
push ecx
push 0x17
lea ecx, [ebp - 0x7c]
mov esi, eax
call fcn.00412319
xor edx, edx
mov ax, word [esi + edx + 2]
xor ax, word [esi]
cmp dword [ebp - 0x68], 7
movzx ecx, ax
lea eax, [ebp - 0x7c]
cmova eax, dword [ebp - 0x7c]
mov word [edx + eax], cx
add edx, 2
cmp edx, 0x2e
jb 0x40b421
cmp dword [ebp - 0x68], 7
lea ecx, [ebp - 0x7c]
cmova ecx, dword [ebp - 0x7c]
call fcn.0041c46c
lea ecx, [ebp - 0x7c]
mov bl, al
call fcn.004128ca
test bl, bl
je 0x40c30f
mov eax, dword [0x5ae7a8]
mov eax, dword [eax + 0x3e48]
movss xmm0, dword [eax + 0x14]
movss dword [ebp - 0x14], xmm0
movss xmm0, dword [eax + 0x18]
movss dword [ebp - 0x18], xmm0
call fcn.0043701f
mov dword [ebp - 0x24], eax
call fcn.00430599
call fcn.004305b6
movss xmm1, dword [ebp - 0x14]
lea ecx, [ebp - 0x74]
movss xmm2, dword [ebp - 0x18]
movaps xmm0, xmm1
xorps xmm3, xmm3
addss xmm0, xmm3
movss dword [ebp - 0x3c], xmm0
movaps xmm0, xmm2
addss xmm0, xmm3
movss dword [ebp - 0x38], xmm0
movss xmm0, dword [0x523fd8]
addss xmm1, xmm0
addss xmm2, xmm0
movaps xmm0, xmmword [0x524240]
movups xmmword [ebp - 0x74], xmm0
movss dword [ebp - 0x1c], xmm1
movss dword [ebp - 0x18], xmm2
call fcn.0042d410
movaps xmm0, xmmword [0x524260]
lea ecx, [ebp - 0x74]
mov ebx, eax
movups xmmword [ebp - 0x74], xmm0
call fcn.0042d410
movaps xmm0, xmmword [0x524270]
lea ecx, [ebp - 0x74]
mov edi, eax
movups xmmword [ebp - 0x74], xmm0
call fcn.0042d410
movaps xmm0, xmmword [0x524240]
lea ecx, [ebp - 0x74]
mov esi, eax
movups xmmword [ebp - 0x74], xmm0
call fcn.0042d410
mov ecx, dword [ebp - 0x24]
push ebx
push edi
push esi
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.004480fb
call fcn.0040293a
movss xmm1, dword [0x523e80]
xor ecx, ecx
call fcn.0042e3d4
xor ebx, ebx
mov dword [ebp - 0x3c], 0x43eb0000
push ebx
push ecx
xor edi, edi
mov dword [ebp - 0x38], 0x43c80000
lea eax, [ebp - 0x3c]
inc edi
push eax
mov edx, edi
xor ecx, ecx
call fcn.004322f2
add esp, 0xc
push 3
pop esi
test al, al
je 0x40b817
movss xmm0, dword [0x523f70]
call fcn.004392d6
push 0x5b01c0
mov ecx, 0x5ad988
mov dword [ebp - 0x3c], 0x428c0000
mov dword [ebp - 0x38], 0x420c0000
call fcn.0041614b
xor edx, edx
mov byte [ebp - 0x20], bl
push 0x7e
pop ecx
div ecx
mov ecx, ebx
inc dl
mov al, dl
mov byte [ebp - 0x24], dl
xor al, 0xef
mov byte [ebp - 0x23], al
mov al, dl
xor al, 0x8e
mov byte [ebp - 0x22], al
mov al, dl
xor al, 0x92
mov byte [ebp - 0x21], al
mov al, byte [ebp + ecx - 0x23]
xor al, dl
mov byte [ecx + 0x5aed0c], al
inc ecx
cmp ecx, esi
jb 0x40b5cf
push ecx
lea edx, [ebp - 0x3c]
mov byte [0x5aed0f], bl
mov ecx, 0x5aed0c
call fcn.00450bac
pop ecx
test al, al
je 0x40b5ff
mov dword [0x52c370], edi
movss xmm1, dword [0x524028]
xorps xmm0, xmm0
call fcn.004391f5
push 0x5b01c0
mov ecx, 0x5ad988
mov dword [ebp - 0x3c], 0x428c0000
mov dword [ebp - 0x38], 0x420c0000
call fcn.0041614b
xor edx, edx
mov byte [ebp - 0x20], bl
push 0x7e
pop ecx
div ecx
mov ecx, ebx
inc dl
mov al, dl
mov byte [ebp - 0x24], dl
xor al, 0xef
mov byte [ebp - 0x23], al
mov al, dl
xor al, 0x95
mov byte [ebp - 0x22], al
mov al, dl
xor al, 0x84
mov byte [ebp - 0x21], al
mov al, byte [ebp + ecx - 0x23]
xor al, dl
mov byte [ecx + 0x5aec80], al
inc ecx
cmp ecx, esi
jb 0x40b652
push ecx
lea edx, [ebp - 0x3c]
mov byte [0x5aec83], bl
mov ecx, 0x5aec80
call fcn.00450bac
pop ecx
test al, al
je 0x40b686
mov dword [0x52c370], 2
movss xmm1, dword [0x524028]
xorps xmm0, xmm0
call fcn.004391f5
push 0x5b01c0
mov ecx, 0x5ad988
mov dword [ebp - 0x3c], 0x428c0000
mov dword [ebp - 0x38], 0x420c0000
call fcn.0041614b
xor edx, edx
mov byte [ebp - 0x20], bl
push 0x7e
pop ecx
div ecx
mov ecx, ebx
inc dl
mov al, dl
mov byte [ebp - 0x24], dl
xor al, 0xef
mov byte [ebp - 0x23], al
mov al, dl
xor al, 0x9c
mov byte [ebp - 0x22], al
mov al, dl
xor al, 0x89
mov byte [ebp - 0x21], al
mov al, byte [ebp + ecx - 0x23]
xor al, dl
mov byte [ecx + 0x5aeccc], al
inc ecx
cmp ecx, esi
jb 0x40b6d9
push ecx
lea edx, [ebp - 0x3c]
mov byte [0x5aeccf], bl
mov ecx, 0x5aeccc
call fcn.00450bac
pop ecx
test al, al
je 0x40b709
mov dword [0x52c370], esi
movss xmm1, dword [0x524028]
xorps xmm0, xmm0
call fcn.004391f5
push 0x5b01c0
mov ecx, 0x5ad988
mov dword [ebp - 0x3c], 0x428c0000
mov dword [ebp - 0x38], 0x420c0000
call fcn.0041614b
xor edx, edx
mov byte [ebp - 0x20], bl
push 0x7e
pop ecx
div ecx
mov ecx, ebx
inc dl
mov al, dl
mov byte [ebp - 0x24], dl
xor al, 0xef
mov byte [ebp - 0x23], al
mov al, dl
xor al, 0x84
mov byte [ebp - 0x22], al
mov al, dl
xor al, 0x9b
mov byte [ebp - 0x21], al
mov al, byte [ebp + ecx - 0x23]
xor al, dl
mov byte [ecx + 0x5aec40], al
inc ecx
cmp ecx, esi
jb 0x40b75c
push ecx
lea edx, [ebp - 0x3c]
mov byte [0x5aec43], bl
mov ecx, 0x5aec40
call fcn.00450bac
pop ecx
test al, al
je 0x40b790
mov dword [0x52c370], 4
movss xmm1, dword [0x524028]
xorps xmm0, xmm0
call fcn.004391f5
push 0x5b01c0
mov ecx, 0x5ad988
mov dword [ebp - 0x3c], 0x428c0000
mov dword [ebp - 0x38], 0x420c0000
call fcn.0041614b
xor edx, edx
mov byte [ebp - 0x20], bl
push 0x7e
pop ecx
div ecx
mov ecx, ebx
inc dl
mov al, dl
mov byte [ebp - 0x24], dl
xor al, 0xef
mov byte [ebp - 0x23], al
mov al, dl
xor al, 0x80
mov byte [ebp - 0x22], al
mov al, dl
xor al, 0x93
mov byte [ebp - 0x21], al
mov al, byte [ebp + ecx - 0x23]
xor al, dl
mov byte [ecx + 0x5b0168], al
inc ecx
cmp ecx, esi
jb 0x40b7e3
push ecx
lea edx, [ebp - 0x3c]
mov byte [0x5b016b], bl
mov ecx, 0x5b0168
call fcn.00450bac
pop ecx
test al, al
je 0x40b817
mov dword [0x52c370], 5
call fcn.00432505
push ebx
push ecx
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x3c], 0x43eb0000
push eax
mov edx, edi
mov dword [ebp - 0x38], 0x43c80000
xor ecx, ecx
call fcn.004322f2
add esp, 0xc
test al, al
je 0x40c2fb
xorps xmm0, xmm0
call fcn.00439344
mov eax, dword [0x52c370]
cmp eax, edi
jne 0x40b85f
call fcn.004194dc
jmp 0x40c1fa
cmp eax, 2
jne 0x40bedf
push 0x5b01c0
mov ecx, 0x5ad988
call fcn.0041614b
push 0x7e
pop ecx
xor edx, edx
mov byte [ebp - 0x20], 0
div ecx
push ecx
push esi
lea ecx, [ebp - 0x7c]
lea ebx, [edx + 1]
mov al, bl
mov byte [ebp - 0x24], bl
xor al, 0x42
mov byte [ebp - 0x23], al
mov al, bl
xor al, 0x4f
mov byte [ebp - 0x22], al
mov al, bl
xor al, 0x54
mov byte [ebp - 0x21], al
call fcn.004123c9
xor edx, edx
mov cl, byte [ebp + edx - 0x23]
lea eax, [ebp - 0x7c]
xor cl, bl
cmp dword [ebp - 0x68], 0xf
cmova eax, dword [ebp - 0x7c]
mov byte [eax + edx], cl
inc edx
cmp edx, esi
jb 0x40b8a9
and dword [ebp - 4], 0
lea ecx, [ebp - 0x7c]
cmp dword [ebp - 0x68], 0xf
cmova ecx, dword [ebp - 0x7c]
call fcn.0045295c
or esi, 0xffffffff
lea ecx, [ebp - 0x7c]
mov dword [ebp - 4], esi
call fcn.00412370
push dword [ebp - 0x23]
push ecx
lea ecx, [ebp - 0x3e]
call fcn.00413b4e
push ecx
push 0xa
pop edi
push edi
lea ecx, [ebp - 0x7c]
mov ebx, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [ebx + edx + 1]
lea eax, [ebp - 0x7c]
xor cl, byte [ebx]
cmp dword [ebp - 0x68], 0xf
cmova eax, dword [ebp - 0x7c]
mov byte [eax + edx], cl
inc edx
cmp edx, edi
jb 0x40b901
mov dword [ebp - 4], 1
lea eax, [ebp - 0x7c]
cmp dword [ebp - 0x68], 0xf
push 0x5ad670
cmova eax, dword [ebp - 0x7c]
push eax
call fcn.0046094a
lea ecx, [ebp - 0x7c]
mov dword [ebp - 4], esi
call fcn.00412370
cmp byte [0x5ad670], 0
je 0x40bece
push ecx
push 0x1a
push 0x5ad730
push fcn.00453000
mov edx, 0x5ae9d8
mov ecx, 0x475390
call fcn.00453060
add esp, 0x10
mov ecx, 0x5ad988
push 0x5b01c0
call fcn.0041614b
push 0x7e
pop ecx
xor edx, edx
mov byte [ebp - 0x20], 0
div ecx
push ecx
push 5
lea ecx, [ebp - 0x7c]
lea ebx, [edx + 1]
mov al, bl
mov byte [ebp - 0x26], bl
xor al, 0x44
mov byte [ebp - 0x25], al
mov al, bl
xor al, 0x65
mov byte [ebp - 0x24], al
mov al, bl
xor al, 0x6c
mov byte [ebp - 0x23], al
mov al, bl
xor al, 0x61
mov byte [ebp - 0x22], al
mov al, bl
xor al, 0x79
mov byte [ebp - 0x21], al
call fcn.004123c9
xor edx, edx
mov cl, byte [ebp + edx - 0x25]
lea eax, [ebp - 0x7c]
xor cl, bl
cmp dword [ebp - 0x68], 0xf
cmova eax, dword [ebp - 0x7c]
mov byte [eax + edx], cl
inc edx
cmp edx, 5
jb 0x40b9be
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x7c]
cmp dword [ebp - 0x68], 0xf
lea eax, [ebp - 0x24]
mov dword [ebp - 0x24], 0x50
cmova ecx, dword [ebp - 0x7c]
push ecx
push ecx
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], edi
push eax
push 0x5ad534
call fcn.004541b9
add esp, 0x14
mov dword [ebp - 4], esi
lea ecx, [ebp - 0x7c]
call fcn.00412370
mov ecx, 0x473d7e
call fcn.0045295c
push 0x5b01c0
mov ecx, 0x5ad988
call fcn.0041614b
push 0x7e
pop ecx
xor edx, edx
mov byte [ebp - 0x20], 0
div ecx
push ecx
push 5
lea ecx, [ebp - 0x7c]
lea ebx, [edx + 1]
mov al, bl
mov byte [ebp - 0x26], bl
xor al, 0x48
mov byte [ebp - 0x25], al
mov al, bl
xor al, 0x6f
mov byte [ebp - 0x24], al
mov al, bl
xor al, 0x75
mov byte [ebp - 0x23], al
mov al, bl
xor al, 0x72
mov byte [ebp - 0x22], al
mov al, bl
xor al, 0x73
mov byte [ebp - 0x21], al
call fcn.004123c9
xor edx, edx
mov cl, byte [ebp + edx - 0x25]
lea eax, [ebp - 0x7c]
xor cl, bl
cmp dword [ebp - 0x68], 0xf
cmova eax, dword [ebp - 0x7c]
mov byte [eax + edx], cl
inc edx
cmp edx, 5
jb 0x40ba70
push 0xf
pop ebx
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x7c]
cmp dword [ebp - 0x68], ebx
movss xmm3, dword [0x523e90]
cmova ecx, dword [ebp - 0x7c]
and dword [ebp - 0x18], 0
push 0xc
pop eax
push ecx
push 0x475394
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x18]
push eax
push 0x5ae6a8
push 4
pop edx
call fcn.00453b06
add esp, 0x14
mov dword [ebp - 4], esi
lea ecx, [ebp - 0x7c]
call fcn.00412370
push dword [ebp - 0x23]
push ecx
lea ecx, [ebp - 0x3b]
call fcn.00413bb7
push ecx
push 7
lea ecx, [ebp - 0x7c]
mov edi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [edi + edx + 1]
lea eax, [ebp - 0x7c]
xor cl, byte [edi]
cmp dword [ebp - 0x68], ebx
cmova eax, dword [ebp - 0x7c]
mov byte [eax + edx], cl
inc edx
cmp edx, 7
jb 0x40baf4
push 4
pop edx
mov dword [ebp - 4], edx
lea ecx, [ebp - 0x7c]
cmp dword [ebp - 0x68], ebx
lea eax, [ebp - 0x24]
movss xmm3, dword [0x523e90]
cmova ecx, dword [ebp - 0x7c]
and dword [ebp - 0x18], 0
push 0x37
pop edi
push ecx
push 0x475394
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x24], edi
push eax
push 0x5ae698
call fcn.00453b06
add esp, 0x14
mov dword [ebp - 4], esi
lea ecx, [ebp - 0x7c]
call fcn.00412370
mov eax, dword [0x5ae6a8]
mov ecx, eax
push 0xc
pop edx
push dword [ebp - 0x23]
cmp eax, edx
cmovg ecx, edx
xor edx, edx
test eax, eax
mov eax, dword [0x5ae698]
cmovs ecx, edx
cmp eax, edi
mov dword [0x5ae6a8], ecx
mov ecx, eax
cmovg ecx, edi
test eax, eax
cmovs ecx, edx
and dword [ebp - 0x3c], edx
and dword [ebp - 0x38], edx
mov dword [0x5ae698], ecx
push ecx
lea ecx, [ebp - 0x29]
call fcn.00413c0e
push ecx
push 8
lea ecx, [ebp - 0x7c]
mov edi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [edi + edx + 1]
lea eax, [ebp - 0x7c]
xor cl, byte [edi]
cmp dword [ebp - 0x68], ebx
cmova eax, dword [ebp - 0x7c]
mov byte [eax + edx], cl
inc edx
cmp edx, 8
jb 0x40bba9
mov dword [ebp - 4], 5
lea ecx, [ebp - 0x7c]
cmp dword [ebp - 0x68], ebx
lea edx, [ebp - 0x3c]
cmova ecx, dword [ebp - 0x7c]
push ecx
call fcn.00450bac
pop ecx
lea ecx, [ebp - 0x7c]
mov dword [ebp - 4], esi
mov bl, al
call fcn.00412370
test bl, bl
je 0x40bc21
imul eax, dword [0x5ae6a8], 0x3c
add eax, dword [0x5ae698]
imul eax, eax, 0x3c
test eax, eax
jle 0x40bc21
lea ecx, [ebp - 0x3c]
mov byte [0x5ae590], 1
call fcn.00401dfc
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [0x5ae700], ecx
mov dword [0x5ae704], eax
movss xmm1, dword [0x524028]
xorps xmm0, xmm0
call fcn.004391f5
cmp byte [0x5ae590], 0
je 0x40bdde
push dword [ebp - 0x23]
and dword [ebp - 0x3c], 0
and dword [ebp - 0x38], 0
push ecx
lea ecx, [ebp - 0x2c]
call fcn.00413c6c
push ecx
push 0xb
lea ecx, [ebp - 0x7c]
mov edi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [edi + edx + 1]
lea eax, [ebp - 0x7c]
xor cl, byte [edi]
cmp dword [ebp - 0x68], 0xf
cmova eax, dword [ebp - 0x7c]
mov byte [eax + edx], cl
inc edx
cmp edx, 0xb
jb 0x40bc61
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x7c]
cmp dword [ebp - 0x68], 0xf
lea edx, [ebp - 0x3c]
cmova ecx, dword [ebp - 0x7c]
push ecx
call fcn.00450bac
pop ecx
lea ecx, [ebp - 0x7c]
mov dword [ebp - 4], esi
mov bl, al
call fcn.00412370
test bl, bl
je 0x40bcb1
xor al, al
mov byte [0x5ae590], al
jmp 0x40bcb6
mov al, byte [0x5ae590]
test al, al
je 0x40bdde
lea ecx, [ebp - 0x3c]
call fcn.00401dfc
imul eax, dword [0x5ae6a8], 0x3c
mov ecx, dword [ebp - 0x3c]
push 0
push 0x3b9aca00
add eax, dword [0x5ae698]
imul edi, eax, 0x3c
sub ecx, dword [0x5ae700]
mov eax, dword [ebp - 0x38]
sbb eax, dword [0x5ae704]
push eax
push ecx
call fcn.00470010
sub edi, eax
test edi, edi
jg 0x40bd5d
push dword [ebp - 0x23]
mov byte [0x5ae590], 0
push ecx
lea ecx, [ebp - 0x64]
call fcn.00414bd8
push ecx
push 0x17
lea ecx, [ebp - 0x7c]
mov edi, eax
call fcn.00412319
xor edx, edx
mov ax, word [edx + edi + 2]
xor ax, word [edi]
cmp dword [ebp - 0x68], 7
movzx ecx, ax
lea eax, [ebp - 0x7c]
cmova eax, dword [ebp - 0x7c]
mov word [edx + eax], cx
add edx, 2
cmp edx, 0x2e
jb 0x40bd1e
cmp dword [ebp - 0x68], 7
lea ecx, [ebp - 0x7c]
cmova ecx, dword [ebp - 0x7c]
call fcn.00409072
lea ecx, [ebp - 0x7c]
call fcn.004128ca
jmp 0x40bdde
mov eax, edi
mov ecx, 0xe10
cdq
idiv ecx
push 0x3c
mov ebx, eax
mov eax, edx
pop ecx
cdq
idiv ecx
mov dword [ebp - 0x18], eax
mov eax, edi
cdq
idiv ecx
mov dword [ebp - 0x24], edx
push dword [ebp - 0x23]
push ecx
lea ecx, [ebp - 0x5b]
call fcn.00413cdc
push ecx
push 0x27
lea ecx, [ebp - 0x7c]
mov edi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [edi + edx + 1]
lea eax, [ebp - 0x7c]
xor cl, byte [edi]
cmp dword [ebp - 0x68], 0xf
cmova eax, dword [ebp - 0x7c]
mov byte [eax + edx], cl
inc edx
cmp edx, 0x27
jb 0x40bd97
mov dword [ebp - 4], 7
lea eax, [ebp - 0x7c]
push dword [ebp - 0x24]
cmp dword [ebp - 0x68], 0xf
push dword [ebp - 0x18]
cmova eax, dword [ebp - 0x7c]
push ebx
push eax
call fcn.004504e4
add esp, 0x10
mov dword [ebp - 4], esi
lea ecx, [ebp - 0x7c]
call fcn.00412370
call fcn.00436be1
mov ecx, 0x473d7e
call fcn.0045295c
push dword [ebp - 0x23]
push ecx
lea ecx, [ebp - 0x3f]
call fcn.00413ebb
push ecx
push 0xb
lea ecx, [ebp - 0x7c]
mov edi, eax
call fcn.004123c9
xor ebx, ebx
mov edx, ebx
mov cl, byte [edi + edx + 1]
lea eax, [ebp - 0x7c]
xor cl, byte [edi]
cmp dword [ebp - 0x68], 0xf
cmova eax, dword [ebp - 0x7c]
mov byte [eax + edx], cl
inc edx
cmp edx, 0xb
jb 0x40be0a
mov dword [ebp - 4], 8
lea eax, [ebp - 0x7c]
cmp dword [ebp - 0x68], 0xf
push 0x5ae9ed
cmova eax, dword [ebp - 0x7c]
push eax
call fcn.0046094a
lea ecx, [ebp - 0x7c]
mov dword [ebp - 4], esi
call fcn.00412370
cmp byte [0x5ae9ed], 0
je 0x40be5b
mov byte [0x5ae9e4], bl
push dword [ebp - 0x23]
push ecx
lea ecx, [ebp - 0x3b]
call fcn.00413f2b
push ecx
push 7
lea ecx, [ebp - 0x7c]
mov edi, eax
call fcn.004123c9
mov edx, ebx
mov cl, byte [edi + edx + 1]
lea eax, [ebp - 0x7c]
xor cl, byte [edi]
cmp dword [ebp - 0x68], 0xf
cmova eax, dword [ebp - 0x7c]
mov byte [eax + edx], cl
inc edx
cmp edx, 7
jb 0x40be76
mov dword [ebp - 4], 9
lea eax, [ebp - 0x7c]
cmp dword [ebp - 0x68], 0xf
push 0x5ae9e4
cmova eax, dword [ebp - 0x7c]
push eax
call fcn.0046094a
lea ecx, [ebp - 0x7c]
mov dword [ebp - 4], esi
call fcn.00412370
cmp byte [0x5ae9e4], 0
je 0x40bec7
mov byte [0x5ae9ed], bl
call fcn.00436c35
jmp 0x40bed0
xor ebx, ebx
mov ecx, 0x473d7e
call fcn.0045295c
jmp 0x40c1df
cmp eax, esi
jne 0x40c1e4
push 0x5b01c0
mov ecx, 0x5ad988
call fcn.0041614b
push 0x7e
pop ecx
xor edx, edx
mov byte [ebp - 0x20], 0
div ecx
push ecx
push 4
lea ecx, [ebp - 0x7c]
lea ebx, [edx + 1]
mov al, bl
mov byte [ebp - 0x25], bl
xor al, 0x4d
mov byte [ebp - 0x24], al
mov al, bl
xor al, 0x69
mov byte [ebp - 0x23], al
mov al, bl
xor al, 0x73
mov byte [ebp - 0x22], al
mov al, bl
xor al, 0x63
mov byte [ebp - 0x21], al
call fcn.004123c9
xor edx, edx
mov cl, byte [ebp + edx - 0x24]
lea eax, [ebp - 0x7c]
xor cl, bl
cmp dword [ebp - 0x68], 0xf
cmova eax, dword [ebp - 0x7c]
mov byte [eax + edx], cl
inc edx
cmp edx, 4
jb 0x40bf30
push 0xa
pop edi
mov dword [ebp - 4], edi
lea ecx, [ebp - 0x7c]
cmp dword [ebp - 0x68], 0xf
cmova ecx, dword [ebp - 0x7c]
call fcn.0045295c
or esi, 0xffffffff
lea ecx, [ebp - 0x7c]
mov dword [ebp - 4], esi
call fcn.00412370
call fcn.00436be1
push dword [ebp - 0x23]
push ecx
lea ecx, [ebp - 0x7b]
call fcn.00414cb5
push ecx
push 0x15
lea ecx, [ebp - 0x4c]
mov ebx, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [edx + ebx + 1]
lea eax, [ebp - 0x4c]
xor cl, byte [ebx]
cmp dword [ebp - 0x38], 0xf
cmova eax, dword [ebp - 0x4c]
mov byte [eax + edx], cl
inc edx
cmp edx, 0x15
jb 0x40bf8e
mov dword [ebp - 4], 0xb
lea eax, [ebp - 0x4c]
cmp dword [ebp - 0x38], 0xf
push 0x5ae9dd
cmova eax, dword [ebp - 0x4c]
push eax
call fcn.0046094a
lea ecx, [ebp - 0x4c]
mov dword [ebp - 4], esi
call fcn.00412370
push dword [ebp - 0x23]
push ecx
lea ecx, [ebp - 0x41]
call fcn.00414d5f
push ecx
push 0xd
lea ecx, [ebp - 0x7c]
mov ebx, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [ebx + edx + 1]
lea eax, [ebp - 0x7c]
xor cl, byte [ebx]
cmp dword [ebp - 0x68], 0xf
cmova eax, dword [ebp - 0x7c]
mov byte [eax + edx], cl
inc edx
cmp edx, 0xd
jb 0x40bfeb
mov dword [ebp - 4], 0xc
lea eax, [ebp - 0x7c]
cmp dword [ebp - 0x68], 0xf
push 0x5ae9dd
cmova eax, dword [ebp - 0x7c]
push eax
call fcn.0046094a
lea ecx, [ebp - 0x7c]
mov dword [ebp - 4], esi
call fcn.00412370
push dword [ebp - 0x23]
push ecx
lea ecx, [ebp - 0x41]
call fcn.00414dda
push ecx
push 0xd
lea ecx, [ebp - 0x7c]
mov ebx, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [ebx + edx + 1]
lea eax, [ebp - 0x7c]
xor cl, byte [ebx]
cmp dword [ebp - 0x68], 0xf
push 0xd
cmova eax, dword [ebp - 0x7c]
mov byte [eax + edx], cl
inc edx
pop eax
cmp edx, eax
jb 0x40c048
mov dword [ebp - 4], eax
lea eax, [ebp - 0x7c]
cmp dword [ebp - 0x68], 0xf
push 0x5ae9dd
cmova eax, dword [ebp - 0x7c]
push eax
call fcn.0046094a
lea ecx, [ebp - 0x7c]
mov dword [ebp - 4], esi
call fcn.00412370
push dword [ebp - 0x23]
push ecx
lea ecx, [ebp - 0x4f]
call fcn.00414e58
push ecx
push 0x1b
lea ecx, [ebp - 0x7c]
mov ebx, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [ebx + edx + 1]
lea eax, [ebp - 0x7c]
xor cl, byte [ebx]
cmp dword [ebp - 0x68], 0xf
cmova eax, dword [ebp - 0x7c]
mov byte [eax + edx], cl
inc edx
cmp edx, 0x1b
jb 0x40c0a3
mov dword [ebp - 4], 0xe
lea eax, [ebp - 0x7c]
cmp dword [ebp - 0x68], 0xf
push 0x5ad72c
cmova eax, dword [ebp - 0x7c]
push eax
call fcn.0046094a
lea ecx, [ebp - 0x7c]
mov dword [ebp - 4], esi
call fcn.00412370
cmp byte [0x5ad72c], 0
mov ebx, 0x473d7e
je 0x40c117
and dword [ebp - 0x18], 0
lea eax, [ebp - 0x24]
push ecx
push ecx
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x24], 0x1f4
push eax
push 0x5ad674
mov ecx, ebx
call fcn.004541b9
add esp, 0x14
push dword [ebp - 0x23]
push ecx
lea ecx, [ebp - 0x3e]
call fcn.00414f1c
push ecx
push edi
lea ecx, [ebp - 0x7c]
mov esi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x7c]
xor cl, byte [esi]
cmp dword [ebp - 0x68], 0xf
cmova eax, dword [ebp - 0x7c]
mov byte [eax + edx], cl
inc edx
cmp edx, edi
jb 0x40c131
push 0xf
pop ecx
mov dword [ebp - 4], ecx
lea eax, [ebp - 0x7c]
cmp dword [ebp - 0x68], ecx
push 0x5ae9dd
cmova eax, dword [ebp - 0x7c]
push eax
call fcn.0046094a
or esi, 0xffffffff
lea ecx, [ebp - 0x7c]
mov dword [ebp - 4], esi
call fcn.00412370
push dword [ebp - 0x23]
push ecx
lea ecx, [ebp - 0x3e]
call fcn.00414f81
push ecx
push edi
lea ecx, [ebp - 0x7c]
mov esi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x7c]
xor cl, byte [esi]
cmp dword [ebp - 0x68], 0xf
cmova eax, dword [ebp - 0x7c]
mov byte [eax + edx], cl
inc edx
cmp edx, edi
jb 0x40c18d
mov dword [ebp - 4], 0x10
lea eax, [ebp - 0x7c]
cmp dword [ebp - 0x68], 0xf
push 0x5ae9dd
cmova eax, dword [ebp - 0x7c]
push eax
call fcn.0046094a
or esi, 0xffffffff
lea ecx, [ebp - 0x7c]
mov dword [ebp - 4], esi
call fcn.00412370
call fcn.00436c35
mov ecx, ebx
call fcn.0045295c
xor ebx, ebx
push 3
pop esi
jmp 0x40c1fa
cmp eax, 4
jne 0x40c1f0
call fcn.004186b8
jmp 0x40c1fa
cmp eax, 5
jne 0x40c1fa
call fcn.0041875e
call fcn.00432505
push ebx
push ecx
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x3c], 0x43eb0000
push eax
mov edx, esi
mov dword [ebp - 0x38], 0x42a00000
xor ecx, ecx
call fcn.004322f2
add esp, 0xc
test al, al
je 0x40c2f6
lea ecx, [ebp - 0x3c]
call fcn.004395d3
movss xmm1, dword [eax + 4]
mov eax, dword [0x5ae7a8]
subss xmm1, dword [0x523f74]
mov eax, dword [eax + 0x3e48]
mulss xmm1, dword [0x523e40]
movss xmm0, dword [eax + 0xf4]
subss xmm0, dword [eax + 0x18]
addss xmm0, dword [eax + 0x7c]
addss xmm0, xmm1
call fcn.0043930d
call fcn.00409126
call fcn.0045227e
push 0x5b01c0
mov ecx, 0x5ad988
mov dword [ebp - 0x3c], 0x42200000
mov dword [ebp - 0x38], 0x41f00000
call fcn.0041614b
xor edx, edx
mov byte [ebp - 0x20], bl
push 0x7e
pop ecx
div ecx
mov ecx, ebx
inc dl
mov al, dl
mov byte [ebp - 0x24], dl
xor al, 0xef
mov byte [ebp - 0x23], al
mov al, dl
xor al, 0x80
mov byte [ebp - 0x22], al
mov al, dl
xor al, 0x91
mov byte [ebp - 0x21], al
mov al, byte [ebp + ecx - 0x23]
xor al, dl
mov byte [ecx + 0x5b156c], al
inc ecx
cmp ecx, esi
jb 0x40c2b7
push ecx
lea edx, [ebp - 0x3c]
mov byte [0x5b156f], bl
mov ecx, 0x5b156c
call fcn.00450bac
pop ecx
test al, al
jne 0x40c30f
movss xmm1, dword [0x524028]
xorps xmm0, xmm0
call fcn.004391f5
call fcn.004080cd
call fcn.00432505
call fcn.00436659
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret
call fcn.00409045
int3