Function at 0x409b29
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x470885
call fcn.0046ffb4
sub esp, 0x98
push ebx
push esi
push edi
push 1
xor ebx, ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x5657a8]
mov dword [eax + 0x20], ebx
call fcn.0040734a
call fcn.004097ef
cmp dword [0x565908], 0xf
mov ecx, 0x5658f4
push 0x80e2
cmova ecx, dword [0x5658f4]
xor edx, edx
call fcn.00434882
pop ecx
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x6e]
call fcn.00413a99
push ecx
push 0x12
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.00412319
mov edx, ebx
mov ax, word [edx + esi + 2]
xor ax, word [esi]
cmp dword [ebp - 0x14], 7
movzx ecx, ax
lea eax, [ebp - 0x28]
cmova eax, dword [ebp - 0x28]
mov word [eax + edx], cx
add edx, 2
cmp edx, 0x24
jb 0x409b93
cmp dword [ebp - 0x14], 7
lea ecx, [ebp - 0x28]
cmova ecx, dword [ebp - 0x28]
call fcn.0041c46c
lea ecx, [ebp - 0x28]
mov bl, al
call fcn.004128ca
test bl, bl
je 0x40b2e4
mov eax, dword [0x5657a8]
mov eax, dword [eax + 0x3e48]
movss xmm0, dword [eax + 0x14]
movss dword [ebp - 0xa0], xmm0
movss xmm0, dword [eax + 0x18]
movss dword [ebp - 0x3c], xmm0
call fcn.0043701f
mov dword [ebp - 0x30], eax
call fcn.00430599
call fcn.004305b6
movss xmm1, dword [ebp - 0xa0]
lea ecx, [ebp - 0x20]
movss xmm2, dword [ebp - 0x3c]
movaps xmm0, xmm1
xorps xmm3, xmm3
addss xmm0, xmm3
movss dword [ebp - 0x50], xmm0
movaps xmm0, xmm2
addss xmm0, xmm3
movss dword [ebp - 0x4c], xmm0
movss xmm0, dword [0x4db238]
addss xmm1, xmm0
addss xmm2, xmm0
movaps xmm0, xmmword [0x4db4a0]
movups xmmword [ebp - 0x20], xmm0
movss dword [ebp - 0x40], xmm1
movss dword [ebp - 0x3c], xmm2
call fcn.0042d410
movaps xmm0, xmmword [0x4db4a0]
lea ecx, [ebp - 0x20]
mov ebx, eax
movups xmmword [ebp - 0x20], xmm0
call fcn.0042d410
movaps xmm0, xmmword [0x4db530]
lea ecx, [ebp - 0x20]
mov edi, eax
movups xmmword [ebp - 0x20], xmm0
call fcn.0042d410
movaps xmm0, xmmword [0x4db4a0]
lea ecx, [ebp - 0x20]
mov esi, eax
movups xmmword [ebp - 0x20], xmm0
call fcn.0042d410
mov ecx, dword [ebp - 0x30]
push ebx
push edi
push esi
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004480fb
call fcn.0040200a
movss xmm1, dword [0x4db0f0]
xor ecx, ecx
call fcn.0042e3d4
xor ebx, ebx
mov dword [ebp - 0x50], 0x43eb0000
push ebx
push ecx
xor esi, esi
mov dword [ebp - 0x4c], 0x43c80000
lea eax, [ebp - 0x50]
inc esi
push eax
mov edx, esi
xor ecx, ecx
call fcn.004322f2
add esp, 0xc
push 3
pop edi
test al, al
je 0x40a009
push 0x5671c0
mov ecx, 0x564988
mov dword [ebp - 0x50], 0x428c0000
mov dword [ebp - 0x4c], 0x420c0000
call fcn.0041614b
xor edx, edx
mov byte [ebp - 0x2c], bl
push 0x7e
pop ecx
div ecx
mov ecx, ebx
inc dl
mov al, dl
mov byte [ebp - 0x30], dl
xor al, 0xef
mov byte [ebp - 0x2f], al
mov al, dl
xor al, 0x8e
mov byte [ebp - 0x2e], al
mov al, dl
xor al, 0x92
mov byte [ebp - 0x2d], al
mov al, byte [ebp + ecx - 0x2f]
xor al, dl
mov byte [ecx + 0x567184], al
inc ecx
cmp ecx, edi
jb 0x409d3a
push ecx
lea edx, [ebp - 0x50]
mov byte [0x567187], bl
mov ecx, 0x567184
call fcn.00450bac
pop ecx
test al, al
je 0x409d6a
mov dword [0x4e3370], esi
movss xmm1, dword [0x4db288]
xorps xmm0, xmm0
call fcn.004391f5
push 0x5671c0
mov ecx, 0x564988
mov dword [ebp - 0x50], 0x428c0000
mov dword [ebp - 0x4c], 0x420c0000
call fcn.0041614b
xor edx, edx
mov byte [ebp - 0x2c], bl
push 0x7e
pop ecx
div ecx
mov ecx, ebx
inc dl
mov al, dl
mov byte [ebp - 0x30], dl
xor al, 0xef
mov byte [ebp - 0x2f], al
mov al, dl
xor al, 0x95
mov byte [ebp - 0x2e], al
mov al, dl
xor al, 0x84
mov byte [ebp - 0x2d], al
mov al, byte [ebp + ecx - 0x2f]
xor al, dl
mov byte [ecx + 0x565d50], al
inc ecx
cmp ecx, edi
jb 0x409dbd
push ecx
lea edx, [ebp - 0x50]
mov byte [0x565d53], bl
mov ecx, 0x565d50
call fcn.00450bac
pop ecx
test al, al
je 0x409df1
mov dword [0x4e3370], 2
movss xmm1, dword [0x4db288]
xorps xmm0, xmm0
call fcn.004391f5
push 0x5671c0
mov ecx, 0x564988
mov dword [ebp - 0x50], 0x428c0000
mov dword [ebp - 0x4c], 0x420c0000
call fcn.0041614b
xor edx, edx
mov byte [ebp - 0x2c], bl
push 0x7e
pop ecx
div ecx
mov ecx, ebx
inc dl
mov al, dl
mov byte [ebp - 0x30], dl
xor al, 0xef
mov byte [ebp - 0x2f], al
mov al, dl
xor al, 0x91
mov byte [ebp - 0x2e], al
mov al, dl
xor al, 0x95
mov byte [ebp - 0x2d], al
mov al, byte [ebp + ecx - 0x2f]
xor al, dl
mov byte [ecx + 0x567160], al
inc ecx
cmp ecx, edi
jb 0x409e44
push ecx
lea edx, [ebp - 0x50]
mov byte [0x567163], bl
mov ecx, 0x567160
call fcn.00450bac
pop ecx
test al, al
je 0x409e74
mov dword [0x4e3370], edi
movss xmm1, dword [0x4db288]
xorps xmm0, xmm0
call fcn.004391f5
push 0x5671c0
mov ecx, 0x564988
mov dword [ebp - 0x50], 0x428c0000
mov dword [ebp - 0x4c], 0x420c0000
call fcn.0041614b
xor edx, edx
mov byte [ebp - 0x2c], bl
push 0x7e
pop ecx
div ecx
mov ecx, ebx
inc dl
mov al, dl
mov byte [ebp - 0x30], dl
xor al, 0xef
mov byte [ebp - 0x2f], al
mov al, dl
xor al, 0x80
mov byte [ebp - 0x2e], al
mov al, dl
xor al, 0x82
mov byte [ebp - 0x2d], al
mov al, byte [ebp + ecx - 0x2f]
xor al, dl
mov byte [ecx + 0x565d00], al
inc ecx
cmp ecx, edi
jb 0x409ec7
push ecx
lea edx, [ebp - 0x50]
mov byte [0x565d03], bl
mov ecx, 0x565d00
call fcn.00450bac
pop ecx
test al, al
je 0x409efb
mov dword [0x4e3370], 4
movss xmm1, dword [0x4db288]
xorps xmm0, xmm0
call fcn.004391f5
push 0x5671c0
mov ecx, 0x564988
mov dword [ebp - 0x50], 0x428c0000
mov dword [ebp - 0x4c], 0x420c0000
call fcn.0041614b
xor edx, edx
mov byte [ebp - 0x2c], bl
push 0x7e
pop ecx
div ecx
mov ecx, ebx
inc dl
mov al, dl
mov byte [ebp - 0x30], dl
xor al, 0xef
mov byte [ebp - 0x2f], al
mov al, dl
xor al, 0x84
mov byte [ebp - 0x2e], al
mov al, dl
xor al, 0x9b
mov byte [ebp - 0x2d], al
mov al, byte [ebp + ecx - 0x2f]
xor al, dl
mov byte [ecx + 0x565d48], al
inc ecx
cmp ecx, edi
jb 0x409f4e
push ecx
lea edx, [ebp - 0x50]
mov byte [0x565d4b], bl
mov ecx, 0x565d48
call fcn.00450bac
pop ecx
test al, al
je 0x409f82
mov dword [0x4e3370], 5
movss xmm1, dword [0x4db288]
xorps xmm0, xmm0
call fcn.004391f5
push 0x5671c0
mov ecx, 0x564988
mov dword [ebp - 0x50], 0x428c0000
mov dword [ebp - 0x4c], 0x420c0000
call fcn.0041614b
xor edx, edx
mov byte [ebp - 0x2c], bl
push 0x7e
pop ecx
div ecx
mov ecx, ebx
inc dl
mov al, dl
mov byte [ebp - 0x30], dl
xor al, 0xef
mov byte [ebp - 0x2f], al
mov al, dl
xor al, 0x80
mov byte [ebp - 0x2e], al
mov al, dl
xor al, 0x93
mov byte [ebp - 0x2d], al
mov al, byte [ebp + ecx - 0x2f]
xor al, dl
mov byte [ecx + 0x565c34], al
inc ecx
cmp ecx, edi
jb 0x409fd5
push ecx
lea edx, [ebp - 0x50]
mov byte [0x565c37], bl
mov ecx, 0x565c34
call fcn.00450bac
pop ecx
test al, al
je 0x40a009
mov dword [0x4e3370], 6
call fcn.00432505
push ebx
push ecx
lea eax, [ebp - 0x50]
mov dword [ebp - 0x50], 0x43eb0000
push eax
mov edx, esi
mov dword [ebp - 0x4c], 0x43c80000
xor ecx, ecx
call fcn.004322f2
add esp, 0xc
test al, al
je 0x40b2d0
xorps xmm0, xmm0
call fcn.00439344
mov eax, dword [0x4e3370]
cmp eax, esi
jne 0x40a690
call fcn.004194dc
mov eax, dword [0x4e3370]
push 0xf
pop edi
or ebx, 0xffffffff
cmp eax, 4
jne 0x40b1b5
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x60]
call fcn.0041423c
push ecx
push 0x18
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [edx + esi + 1]
lea eax, [ebp - 0x28]
xor cl, byte [esi]
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 0x18
jb 0x40a07f
mov dword [ebp - 4], 0x15
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
cmova ecx, dword [ebp - 0x28]
call fcn.0045295c
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], ebx
call fcn.00412370
call fcn.00436be1
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x51]
call fcn.004142ef
push ecx
push 9
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [edx + esi + 1]
lea eax, [ebp - 0x28]
xor cl, byte [esi]
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 9
jb 0x40a0d9
mov dword [ebp - 4], 0x16
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
push 0x5659dd
cmova eax, dword [ebp - 0x28]
push eax
call fcn.0046094a
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], ebx
call fcn.00412370
movss xmm1, dword [0x4db288]
xorps xmm0, xmm0
call fcn.004391f5
movss xmm1, dword [0x4db288]
xorps xmm0, xmm0
call fcn.004391f5
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x5f]
call fcn.00414351
push ecx
push 0x17
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [edx + esi + 1]
lea eax, [ebp - 0x28]
xor cl, byte [esi]
cmp dword [ebp - 0x14], edi
push 0x17
cmova eax, dword [ebp - 0x28]
mov byte [edx + eax], cl
inc edx
pop eax
cmp edx, eax
jb 0x40a154
mov dword [ebp - 4], eax
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
cmova ecx, dword [ebp - 0x28]
call fcn.00408bc4
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], ebx
call fcn.00412370
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x24]
call fcn.004143f4
push ecx
push 0x12
lea ecx, [ebp - 0x60]
mov esi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x60]
xor cl, byte [esi]
cmp dword [ebp - 0x4c], edi
cmova eax, dword [ebp - 0x60]
mov byte [eax + edx], cl
inc edx
cmp edx, 0x12
jb 0x40a1a7
mov dword [ebp - 4], 0x18
lea eax, [ebp - 0x60]
cmp dword [ebp - 0x4c], edi
push 0x5659dd
cmova eax, dword [ebp - 0x60]
push eax
call fcn.0046094a
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], ebx
call fcn.00412370
movss xmm1, dword [0x4db288]
xorps xmm0, xmm0
call fcn.004391f5
movss xmm1, dword [0x4db288]
xorps xmm0, xmm0
call fcn.004391f5
push dword [ebp - 0x2f]
lea ecx, [ebp - 0x9c]
push str.activates_a_hitbox_rectangle_from_the_characters_rectangle_list_over_a_frame_range.
call fcn.0041448d
push ecx
push 0x54
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x28]
xor cl, byte [esi]
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 0x54
jb 0x40a229
mov dword [ebp - 4], 0x19
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
cmova ecx, dword [ebp - 0x28]
call fcn.00408bc4
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], ebx
call fcn.00412370
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x24]
call fcn.0041468a
push ecx
push 0x12
lea ecx, [ebp - 0x60]
mov esi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [edx + esi + 1]
lea eax, [ebp - 0x60]
xor cl, byte [esi]
cmp dword [ebp - 0x4c], edi
cmova eax, dword [ebp - 0x60]
mov byte [eax + edx], cl
inc edx
cmp edx, 0x12
jb 0x40a27e
mov dword [ebp - 4], 0x1a
lea eax, [ebp - 0x60]
cmp dword [ebp - 0x4c], edi
push 0x5659dd
cmova eax, dword [ebp - 0x60]
push eax
call fcn.0046094a
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], ebx
call fcn.00412370
movss xmm1, dword [0x4db288]
xorps xmm0, xmm0
call fcn.004391f5
movss xmm1, dword [0x4db288]
xorps xmm0, xmm0
call fcn.004391f5
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x79]
call fcn.00414722
push ecx
push 0x31
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x28]
xor cl, byte [esi]
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 0x31
jb 0x40a2f9
mov dword [ebp - 4], 0x1b
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
cmova ecx, dword [ebp - 0x28]
call fcn.00408bc4
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], ebx
call fcn.00412370
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x52]
call fcn.0041484e
push ecx
push 0xa
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x28]
xor cl, byte [esi]
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 0xa
jb 0x40a34e
mov dword [ebp - 4], 0x1c
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
push 0x5659dd
cmova eax, dword [ebp - 0x28]
push eax
call fcn.0046094a
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], ebx
call fcn.00412370
movss xmm1, dword [0x4db288]
xorps xmm0, xmm0
call fcn.004391f5
movss xmm1, dword [0x4db288]
xorps xmm0, xmm0
call fcn.004391f5
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x6a]
call fcn.004148b2
push ecx
push 0x22
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x28]
xor cl, byte [esi]
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 0x22
jb 0x40a3c9
mov dword [ebp - 4], 0x1d
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
cmova ecx, dword [ebp - 0x28]
call fcn.00408bc4
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], ebx
call fcn.00412370
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x4e]
call fcn.00414998
push ecx
push 6
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x28]
xor cl, byte [esi]
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 6
jb 0x40a41e
mov dword [ebp - 4], 0x1e
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
push 0x5659dd
cmova eax, dword [ebp - 0x28]
push eax
call fcn.0046094a
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], ebx
call fcn.00412370
movss xmm1, dword [0x4db288]
xorps xmm0, xmm0
call fcn.004391f5
movss xmm1, dword [0x4db288]
xorps xmm0, xmm0
call fcn.004391f5
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x5e]
call fcn.004149e8
push ecx
push 0x16
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x28]
xor cl, byte [esi]
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 0x16
jb 0x40a499
mov dword [ebp - 4], 0x1f
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
cmova ecx, dword [ebp - 0x28]
call fcn.00408bc4
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], ebx
call fcn.00412370
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x22]
call fcn.00414a91
push ecx
push 0x10
lea ecx, [ebp - 0x60]
mov esi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x60]
xor cl, byte [esi]
cmp dword [ebp - 0x4c], edi
cmova eax, dword [ebp - 0x60]
mov byte [eax + edx], cl
inc edx
cmp edx, 0x10
jb 0x40a4ee
mov dword [ebp - 4], 0x20
lea eax, [ebp - 0x60]
cmp dword [ebp - 0x4c], edi
push 0x5659ad
cmova eax, dword [ebp - 0x60]
push eax
call fcn.0046094a
lea ecx, [ebp - 0x60]
mov dword [ebp - 4], ebx
call fcn.00412370
push 0x5671c0
mov ecx, 0x564988
call fcn.0041614b
push ecx
push 0
lea ecx, [ebp - 0x28]
call fcn.004123c9
mov dword [ebp - 4], 0x21
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
mov edx, 0x565598
cmova ecx, dword [ebp - 0x28]
push ecx
push ecx
push 0
push 0x100
call fcn.004548f2
add esp, 0x10
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0x28]
call fcn.00412370
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x53]
call fcn.00414b1c
push ecx
push 0xb
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x28]
xor cl, byte [esi]
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 0xb
jb 0x40a595
mov dword [ebp - 4], 0x22
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
push 0x5659b5
cmova eax, dword [ebp - 0x28]
push eax
call fcn.0046094a
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], ebx
call fcn.00412370
push dword [ebp - 0x2f]
mov dword [ebp - 0x50], 0x43960000
push ecx
lea ecx, [ebp - 0x33]
mov dword [ebp - 0x4c], 0x42480000
call fcn.00414b88
push ecx
push 6
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x28]
xor cl, byte [esi]
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 6
jb 0x40a5fe
mov dword [ebp - 4], 0x23
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
lea edx, [ebp - 0x50]
cmova ecx, dword [ebp - 0x28]
push ecx
push ecx
call fcn.004324b5
or dword [ebp - 4], 0xffffffff
mov bl, al
pop ecx
pop ecx
lea ecx, [ebp - 0x28]
call fcn.00412370
test bl, bl
je 0x40a67c
mov esi, 0x5656b0
push 0x565598
push dword [esi]
call dword [sym.imp.VCRUNTIME140.dll_strstr]
pop ecx
pop ecx
test eax, eax
je 0x40a66c
push dword [esi]
push 0x475460
call fcn.004504e4
pop ecx
pop ecx
add esi, 4
cmp esi, 0x5656fc
jl 0x40a64b
call fcn.00432505
call fcn.00436c35
mov ecx, 0x473d7e
call fcn.0045295c
jmp 0x40b1cb
cmp eax, 2
jne 0x40adc0
mov ecx, 0x473d7e
call fcn.0045295c
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x52]
call fcn.00413b4e
push ecx
push 0xa
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.004123c9
push 0xf
mov edx, ebx
pop edi
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x28]
xor cl, byte [esi]
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 0xa
jb 0x40a6c1
mov dword [ebp - 4], ebx
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
push 0x564670
cmova eax, dword [ebp - 0x28]
push eax
call fcn.0046094a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00412370
cmp byte [0x564670], 0
je 0x40adb1
push 0x5671c0
mov ecx, 0x564988
call fcn.0041614b
push 0x7e
pop ecx
xor edx, edx
mov byte [ebp - 0x9d], 0
div ecx
push ecx
mov bl, dl
lea ecx, [ebp - 0x28]
xor esi, esi
inc bl
inc esi
mov bh, bl
push esi
xor bh, 0x20
call fcn.004123c9
xor bh, bl
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [eax], bh
mov dword [ebp - 4], esi
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
mov edx, 0x5659d8
cmova ecx, dword [ebp - 0x28]
push ecx
push 0x17
push 0x5644d8
push fcn.00453000
call fcn.00453060
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
add esp, 0x10
call fcn.00412370
push 0x5671c0
mov ecx, 0x564988
call fcn.0041614b
push 0x7e
pop ecx
xor edx, edx
mov byte [ebp - 0x2c], 0
div ecx
push ecx
mov bl, dl
lea ecx, [ebp - 0x28]
inc bl
mov al, bl
mov byte [ebp - 0x32], bl
xor al, 0x44
mov byte [ebp - 0x31], al
mov al, bl
xor al, 0x65
mov byte [ebp - 0x30], al
mov al, bl
xor al, 0x6c
mov byte [ebp - 0x2f], al
mov al, bl
xor al, 0x61
mov byte [ebp - 0x2e], al
mov al, bl
push 5
pop esi
xor al, 0x79
push esi
mov byte [ebp - 0x2d], al
call fcn.004123c9
xor edx, edx
mov cl, byte [ebp + edx - 0x31]
lea eax, [ebp - 0x28]
xor cl, bl
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, esi
jb 0x40a7d2
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
lea eax, [ebp - 0x30]
mov dword [ebp - 0x30], 0x50
cmova ecx, dword [ebp - 0x28]
push ecx
push ecx
push eax
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x3c], 0xa
push eax
push 0x564534
call fcn.004541b9
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
add esp, 0x14
call fcn.00412370
mov ecx, 0x473d7e
call fcn.0045295c
push 0x5671c0
mov ecx, 0x564988
call fcn.0041614b
push 0x7e
pop ecx
xor edx, edx
mov byte [ebp - 0x2c], 0
div ecx
push ecx
mov bl, dl
lea ecx, [ebp - 0x28]
inc bl
mov al, bl
mov byte [ebp - 0x32], bl
xor al, 0x48
mov byte [ebp - 0x31], al
mov al, bl
xor al, 0x6f
mov byte [ebp - 0x30], al
mov al, bl
xor al, 0x75
mov byte [ebp - 0x2f], al
mov al, bl
xor al, 0x72
mov byte [ebp - 0x2e], al
mov al, bl
xor al, 0x73
push esi
mov byte [ebp - 0x2d], al
call fcn.004123c9
xor edx, edx
mov cl, byte [ebp + edx - 0x31]
lea eax, [ebp - 0x28]
xor cl, bl
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, esi
jb 0x40a886
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
lea eax, [ebp - 0x30]
movss xmm3, dword [0x4db0f0]
mov ebx, 0x475394
cmova ecx, dword [ebp - 0x28]
and dword [ebp - 0x3c], 0
push 0xc
pop esi
push ecx
push ebx
push eax
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x30], esi
push eax
push 0x5656a8
push 4
pop edx
call fcn.00453b06
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
add esp, 0x14
call fcn.00412370
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x4f]
call fcn.00413bb7
push ecx
push 7
lea ecx, [ebp - 0x28]
mov edi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [edi + edx + 1]
lea eax, [ebp - 0x28]
xor cl, byte [edi]
cmp dword [ebp - 0x14], 0xf
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 7
jb 0x40a907
push 4
pop edx
mov dword [ebp - 4], edx
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x30]
movss xmm3, dword [0x4db0f0]
cmova ecx, dword [ebp - 0x28]
and dword [ebp - 0x3c], 0
push 0x37
pop edi
push ecx
push ebx
push eax
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x30], edi
push eax
push 0x565698
call fcn.00453b06
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
add esp, 0x14
call fcn.00412370
mov eax, dword [0x5656a8]
mov ecx, eax
push dword [ebp - 0x2f]
cmp eax, esi
cmovg ecx, esi
xor edx, edx
test eax, eax
mov eax, dword [0x565698]
cmovs ecx, edx
cmp eax, edi
mov dword [0x5656a8], ecx
mov ecx, eax
cmovg ecx, edi
test eax, eax
cmovs ecx, edx
and dword [ebp - 0x50], edx
and dword [ebp - 0x4c], edx
mov dword [0x565698], ecx
push ecx
lea ecx, [ebp - 0x35]
call fcn.00413c0e
push ecx
push 8
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.004123c9
push 0xf
xor edx, edx
pop edi
mov cl, byte [edx + esi + 1]
lea eax, [ebp - 0x28]
xor cl, byte [esi]
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 8
jb 0x40a9bb
mov dword [ebp - 4], 5
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
lea edx, [ebp - 0x50]
cmova ecx, dword [ebp - 0x28]
push ecx
call fcn.00450bac
or dword [ebp - 4], 0xffffffff
mov bl, al
pop ecx
lea ecx, [ebp - 0x28]
call fcn.00412370
test bl, bl
je 0x40aa34
imul eax, dword [0x5656a8], 0x3c
add eax, dword [0x565698]
imul eax, eax, 0x3c
test eax, eax
jle 0x40aa34
lea ecx, [ebp - 0x54]
mov byte [0x565590], 1
call fcn.00401dfc
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [0x565700], ecx
mov dword [0x565704], eax
movss xmm1, dword [0x4db288]
xorps xmm0, xmm0
call fcn.004391f5
cmp byte [0x565590], 0
je 0x40abf1
push dword [ebp - 0x2f]
and dword [ebp - 0x50], 0
and dword [ebp - 0x4c], 0
push ecx
lea ecx, [ebp - 0x38]
call fcn.00413c6c
push ecx
push 0xb
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x28]
xor cl, byte [esi]
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 0xb
jb 0x40aa74
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
lea edx, [ebp - 0x50]
cmova ecx, dword [ebp - 0x28]
push ecx
call fcn.00450bac
or dword [ebp - 4], 0xffffffff
mov bl, al
pop ecx
lea ecx, [ebp - 0x28]
call fcn.00412370
test bl, bl
je 0x40aac3
xor al, al
mov byte [0x565590], al
jmp 0x40aac8
mov al, byte [0x565590]
test al, al
je 0x40abf1
lea ecx, [ebp - 0x54]
call fcn.00401dfc
imul eax, dword [0x5656a8], 0x3c
mov ecx, dword [ebp - 0x54]
push 0
push 0x3b9aca00
add eax, dword [0x565698]
imul esi, eax, 0x3c
sub ecx, dword [0x565700]
mov eax, dword [ebp - 0x50]
sbb eax, dword [0x565704]
push eax
push ecx
call fcn.00470010
sub esi, eax
test esi, esi
jg 0x40ab6f
push dword [ebp - 0x2f]
mov byte [0x565590], 0
push ecx
lea ecx, [ebp - 0x6e]
call fcn.00413a99
push ecx
push 0x12
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.00412319
xor edx, edx
mov ax, word [edx + esi + 2]
xor ax, word [esi]
cmp dword [ebp - 0x14], 7
movzx ecx, ax
lea eax, [ebp - 0x28]
cmova eax, dword [ebp - 0x28]
mov word [edx + eax], cx
add edx, 2
cmp edx, 0x24
jb 0x40ab30
cmp dword [ebp - 0x14], 7
lea ecx, [ebp - 0x28]
cmova ecx, dword [ebp - 0x28]
call fcn.00409072
lea ecx, [ebp - 0x28]
call fcn.004128ca
jmp 0x40abf1
mov eax, esi
mov ecx, 0xe10
cdq
idiv ecx
push 0x3c
mov edi, eax
mov eax, edx
pop ecx
cdq
idiv ecx
mov ebx, eax
mov eax, esi
cdq
idiv ecx
mov dword [ebp - 0x30], edx
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x6f]
call fcn.00413cdc
push ecx
push 0x27
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x28]
xor cl, byte [esi]
cmp dword [ebp - 0x14], 0xf
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 0x27
jb 0x40aba8
mov dword [ebp - 4], 7
lea eax, [ebp - 0x28]
push dword [ebp - 0x30]
cmp dword [ebp - 0x14], 0xf
push ebx
cmova eax, dword [ebp - 0x28]
push edi
push eax
call fcn.004504e4
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
add esp, 0x10
call fcn.00412370
push 0xf
pop edi
call fcn.00436be1
mov ecx, 0x473d7e
call fcn.0045295c
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x52]
call fcn.00413dcb
push ecx
push 0xa
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.004123c9
xor ebx, ebx
mov edx, ebx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x28]
xor cl, byte [esi]
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 0xa
jb 0x40ac1d
mov dword [ebp - 4], 8
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
push 0x5659ed
cmova eax, dword [ebp - 0x28]
push eax
call fcn.0046094a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00412370
cmp byte [0x5659ed], 0
je 0x40ac6d
mov byte [0x5659e4], bl
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x21]
call fcn.00413e33
push ecx
push edi
lea ecx, [ebp - 0x60]
mov esi, eax
call fcn.004123c9
mov edx, ebx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x60]
xor cl, byte [esi]
cmp dword [ebp - 0x4c], edi
cmova eax, dword [ebp - 0x60]
mov byte [eax + edx], cl
inc edx
cmp edx, edi
jb 0x40ac87
mov dword [ebp - 4], 9
lea eax, [ebp - 0x60]
cmp dword [ebp - 0x4c], edi
push 0x5659e4
cmova eax, dword [ebp - 0x60]
push eax
call fcn.0046094a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x60]
call fcn.00412370
cmp byte [0x5659e4], 0
je 0x40acd6
mov byte [0x5659ed], bl
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x53]
call fcn.00413ebb
push ecx
push 0xb
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.004123c9
mov edx, ebx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x28]
xor cl, byte [esi]
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 0xb
jb 0x40acf1
mov dword [ebp - 4], 0xa
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
push 0x5659ed
cmova eax, dword [ebp - 0x28]
push eax
call fcn.0046094a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00412370
cmp byte [0x5659ed], 0
je 0x40ad41
mov byte [0x5659e4], bl
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x4f]
call fcn.00413f2b
push ecx
push 7
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.004123c9
mov edx, ebx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x28]
xor cl, byte [esi]
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 7
jb 0x40ad5c
mov dword [ebp - 4], 0xb
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
push 0x5659e4
cmova eax, dword [ebp - 0x28]
push eax
call fcn.0046094a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00412370
cmp byte [0x5659e4], 0
je 0x40adac
mov byte [0x5659ed], bl
call fcn.00436c35
mov ecx, 0x473d7e
call fcn.0045295c
jmp 0x40a050
cmp eax, edi
jne 0x40a055
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x4e]
call fcn.00413f82
push ecx
push 6
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.004123c9
mov edx, ebx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x28]
xor cl, byte [esi]
cmp dword [ebp - 0x14], 0xf
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 6
jb 0x40ade3
push 0xc
pop esi
mov dword [ebp - 4], esi
lea ecx, [ebp - 0x28]
cmp dword [ebp - 0x14], 0xf
cmova ecx, dword [ebp - 0x28]
call fcn.0045295c
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00412370
mov ecx, 0x473d7e
call fcn.0045295c
call fcn.00436be1
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x22]
call fcn.00413fcf
push ecx
push 0x10
lea ecx, [ebp - 0x60]
mov edi, eax
call fcn.004123c9
mov edx, ebx
mov cl, byte [edi + edx + 1]
lea eax, [ebp - 0x60]
xor cl, byte [edi]
cmp dword [ebp - 0x4c], 0xf
cmova eax, dword [ebp - 0x60]
mov byte [eax + edx], cl
inc edx
cmp edx, 0x10
jb 0x40ae49
mov dword [ebp - 4], 0xd
lea eax, [ebp - 0x60]
cmp dword [ebp - 0x4c], 0xf
push 0x5659dd
cmova eax, dword [ebp - 0x60]
push eax
call fcn.0046094a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x60]
call fcn.00412370
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x55]
call fcn.0041405c
push ecx
push 0xd
lea ecx, [ebp - 0x28]
mov edi, eax
call fcn.004123c9
mov edx, ebx
mov cl, byte [edx + edi + 1]
lea eax, [ebp - 0x28]
xor cl, byte [edi]
cmp dword [ebp - 0x14], 0xf
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 0xd
jb 0x40aea7
mov dword [ebp - 4], 0xe
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], 0xf
push 0x5659dd
cmova eax, dword [ebp - 0x28]
push eax
call fcn.0046094a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00412370
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x54]
call fcn.004140d2
push ecx
push esi
lea ecx, [ebp - 0x28]
mov edi, eax
call fcn.004123c9
mov edx, ebx
mov cl, byte [edi + edx + 1]
lea eax, [ebp - 0x28]
xor cl, byte [edi]
cmp dword [ebp - 0x14], 0xf
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, esi
jb 0x40af04
push 0xf
pop edi
mov dword [ebp - 4], edi
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
push 0x5659dd
cmova eax, dword [ebp - 0x28]
push eax
call fcn.0046094a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00412370
push 0x5671c0
mov ecx, 0x564988
call fcn.0041614b
push 0x7e
pop ecx
xor edx, edx
mov byte [ebp - 0x2c], 0
div ecx
push ecx
mov bl, dl
lea ecx, [ebp - 0x28]
inc bl
mov al, bl
mov byte [ebp - 0x31], bl
xor al, 0x4c
mov byte [ebp - 0x30], al
mov al, bl
xor al, 0x6f
mov byte [ebp - 0x2f], al
mov al, bl
xor al, 0x63
mov byte [ebp - 0x2e], al
mov al, bl
xor al, 0x6b
push 4
mov byte [ebp - 0x2d], al
call fcn.004123c9
xor edx, edx
mov cl, byte [ebp + edx - 0x30]
lea eax, [ebp - 0x28]
xor cl, bl
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 4
jb 0x40af8e
mov dword [ebp - 4], 0x10
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
mov ebx, 0x5659dd
push ebx
cmova eax, dword [ebp - 0x28]
push eax
call fcn.0046094a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00412370
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x20]
call fcn.0041414c
push ecx
push 0xe
lea ecx, [ebp - 0x60]
mov esi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x60]
xor cl, byte [esi]
cmp dword [ebp - 0x4c], edi
cmova eax, dword [ebp - 0x60]
mov byte [eax + edx], cl
inc edx
cmp edx, 0xe
jb 0x40afeb
mov dword [ebp - 4], 0x11
lea eax, [ebp - 0x60]
cmp dword [ebp - 0x4c], edi
push ebx
cmova eax, dword [ebp - 0x60]
push eax
call fcn.0046094a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x60]
call fcn.00412370
push dword [ebp - 0x2f]
push ecx
lea ecx, [ebp - 0x52]
call fcn.004141d0
push ecx
push 0xa
lea ecx, [ebp - 0x28]
mov esi, eax
call fcn.004123c9
xor edx, edx
mov cl, byte [esi + edx + 1]
lea eax, [ebp - 0x28]
xor cl, byte [esi]
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 0xa
jb 0x40b043
mov dword [ebp - 4], 0x12
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
push ebx
cmova eax, dword [ebp - 0x28]
push eax
call fcn.0046094a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00412370
push 0x5671c0
mov ecx, 0x564988
call fcn.0041614b
push 0x7e
pop ecx
xor edx, edx
mov byte [ebp - 0x2c], 0
div ecx
push ecx
mov bl, dl
lea ecx, [ebp - 0x28]
inc bl
mov al, bl
mov byte [ebp - 0x31], bl
xor al, 0x4a
mov byte [ebp - 0x30], al
mov al, bl
xor al, 0x75
mov byte [ebp - 0x2f], al
mov al, bl
xor al, 0x6d
mov byte [ebp - 0x2e], al
mov al, bl
xor al, 0x70
push 4
mov byte [ebp - 0x2d], al
call fcn.004123c9
xor edx, edx
mov cl, byte [ebp + edx - 0x30]
lea eax, [ebp - 0x28]
xor cl, bl
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [edx + eax], cl
inc edx
cmp edx, 4
jb 0x40b0ca
mov dword [ebp - 4], 0x13
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
mov esi, 0x5659dd
push esi
cmova eax, dword [ebp - 0x28]
push eax
call fcn.0046094a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00412370
push 0x5671c0
mov ecx, 0x564988
call fcn.0041614b
push 0x7e
pop ecx
xor edx, edx
mov byte [ebp - 0x2c], 0
div ecx
push ecx
mov bl, dl
lea ecx, [ebp - 0x28]
inc bl
mov al, bl
mov byte [ebp - 0x32], bl
xor al, 0x54
mov byte [ebp - 0x31], al
mov al, bl
xor al, 0x68
mov byte [ebp - 0x30], al
mov al, bl
xor al, 0x72
mov byte [ebp - 0x2f], al
mov al, bl
xor al, 0x6f
mov byte [ebp - 0x2e], al
mov al, bl
xor al, 0x77
push 5
mov byte [ebp - 0x2d], al
call fcn.004123c9
xor edx, edx
mov cl, byte [ebp + edx - 0x31]
lea eax, [ebp - 0x28]
xor cl, bl
cmp dword [ebp - 0x14], edi
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], cl
inc edx
cmp edx, 5
jb 0x40b15d
mov dword [ebp - 4], 0x14
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
push esi
cmova eax, dword [ebp - 0x28]
push eax
call fcn.0046094a
or ebx, 0xffffffff
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], ebx
call fcn.00412370
call fcn.00436c35
mov ecx, 0x473d7e
call fcn.0045295c
mov eax, dword [0x4e3370]
jmp 0x40a05b
cmp eax, 5
jne 0x40b1c1
call fcn.004186b8
jmp 0x40b1cb
cmp eax, 6
jne 0x40b1cb
call fcn.0041875e
call fcn.00432505
xor ebx, ebx
mov dword [ebp - 0x50], 0x43eb0000
push ebx
push ecx
lea eax, [ebp - 0x50]
mov dword [ebp - 0x4c], 0x42a00000
push eax
push 3
pop edx
xor ecx, ecx
call fcn.004322f2
add esp, 0xc
test al, al
je 0x40b2cb
lea ecx, [ebp - 0x50]
call fcn.004395d3
movss xmm1, dword [eax + 4]
mov eax, dword [0x5657a8]
subss xmm1, dword [0x4db1d4]
mov eax, dword [eax + 0x3e48]
mulss xmm1, dword [0x4db0a0]
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 0x5671c0
mov ecx, 0x564988
mov dword [ebp - 0x50], 0x42200000
mov dword [ebp - 0x4c], 0x41f00000
call fcn.0041614b
xor edx, edx
mov byte [ebp - 0x2c], bl
push 0x7e
pop ecx
div ecx
mov ecx, ebx
inc dl
mov al, dl
mov byte [ebp - 0x30], dl
xor al, 0xef
mov byte [ebp - 0x2f], al
mov al, dl
xor al, 0x80
mov byte [ebp - 0x2e], al
mov al, dl
xor al, 0x91
mov byte [ebp - 0x2d], al
mov al, byte [ebp + ecx - 0x2f]
xor al, dl
mov byte [ecx + 0x565c78], al
inc ecx
cmp ecx, 3
jb 0x40b28b
push ecx
lea edx, [ebp - 0x50]
mov byte [0x565c7b], bl
mov ecx, 0x565c78
call fcn.00450bac
pop ecx
test al, al
jne 0x40b2e4
movss xmm1, dword [0x4db288]
xorps xmm0, xmm0
call fcn.004391f5
call fcn.00407ea4
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