Function at 0x444949
Capabilities:
Authenticate hmac
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
push 0x21c
mov eax, 0x46dde2
call fcn.0046bbe6
push 0x5c
pop eax
xor ebx, ebx
movsx ecx, al
mov dword [ebp - 0x1e4], ebx
mov byte [ebp - 0x4c], al
mov dword [ebp - 0x24], 0x3d39280f
mov dword [ebp - 0x20], 0x283d0c31
mov word [ebp - 0x1c], 0x34
call fcn.0043cfd7
push 8
mov dword [ebp - 0x1e0], eax
mov edx, ebx
pop edi
push edx
lea ecx, [ebp - 0x1e0]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x48], eax
inc edx
pop ecx
cmp edx, edi
jl 0x44498d
push 9
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.0043d333
movsx ecx, byte [ebp - 0x4c]
mov dword [ebp - 0x28], eax
call fcn.0043cfd7
mov dword [ebp - 0x1e0], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1e0]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x48], eax
inc edx
pop ecx
cmp edx, edi
jl 0x4449c6
push dword [0x487200]
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x28]
call fcn.0043d3a9
test eax, eax
jne 0x4449f6
mov eax, ebx
jmp 0x444a07
mov dl, byte [ebp - 0x4c]
mov ecx, ebx
xor byte [eax + ecx], dl
inc ecx
cmp ecx, 9
jb 0x4449fb
mov byte [eax + 9], bl
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1f0], esp
push eax
call fcn.0044b51b
mov dword [ebp - 4], ebx
movaps xmm0, xmmword [0x47f460]
push 5
pop eax
movsx ecx, al
mov byte [ebp - 0xb4], al
movups xmmword [ebp - 0x8c], xmm0
mov dword [ebp - 0x7c], 0x68646071
mov byte [ebp - 0x78], bl
call fcn.0043cfd7
mov dword [ebp - 0x1e0], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1e0]
call fcn.0043d016
mov dword [ebp + edx*4 - 0xb0], eax
inc edx
pop ecx
cmp edx, edi
jl 0x444a4c
push 0x14
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp - 0x8c]
push eax
call fcn.0043d333
movsx ecx, byte [ebp - 0xb4]
mov dword [ebp - 0x90], eax
call fcn.0043cfd7
mov dword [ebp - 0x1e0], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1e0]
call fcn.0043d016
mov dword [ebp + edx*4 - 0xb0], eax
inc edx
pop ecx
cmp edx, edi
jl 0x444a94
push dword [0x487200]
lea eax, [ebp - 0xb0]
push eax
push dword [ebp - 0x90]
call fcn.0043d3a9
test eax, eax
jne 0x444acd
mov eax, ebx
jmp 0x444ae1
mov dl, byte [ebp - 0xb4]
mov ecx, ebx
xor byte [ecx + eax], dl
inc ecx
cmp ecx, 0x14
jb 0x444ad5
mov byte [eax + 0x14], bl
sub esp, 0x18
mov ecx, esp
push eax
call fcn.0044b51b
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x164]
mov esi, connect
mov edx, esi
call fcn.0043f5e1
add esp, 0x30
push 0x47a7c4
lea ecx, [ebp - 0x164]
mov dword [ebp - 4], 1
call fcn.0044cae0
test al, al
jne 0x445d32
add al, 0x37
mov dword [ebp - 0x28], 0x58434276
movsx ecx, al
mov byte [ebp - 0x50], al
mov dword [ebp - 0x24], 0x5e50587b
mov dword [ebp - 0x20], 0x52446259
mov word [ebp - 0x1c], 0x45
call fcn.0043cfd7
mov dword [ebp - 0x1e0], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1e0]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x4c], eax
inc edx
pop ecx
cmp edx, edi
jl 0x444b54
push 0xd
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0043d333
movsx ecx, byte [ebp - 0x50]
mov dword [ebp - 0x2c], eax
call fcn.0043cfd7
mov dword [ebp - 0x1e0], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1e0]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x4c], eax
inc edx
pop ecx
cmp edx, edi
jl 0x444b8d
push dword [0x487200]
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x2c]
call fcn.0043d3a9
test eax, eax
jne 0x444bbd
mov eax, ebx
jmp 0x444bce
mov dl, byte [ebp - 0x50]
mov ecx, ebx
xor byte [eax + ecx], dl
inc ecx
cmp ecx, 0xd
jb 0x444bc2
mov byte [eax + 0xd], bl
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1f0], esp
push eax
call fcn.0044b51b
mov byte [ebp - 4], 2
movaps xmm0, xmmword [0x47f3a0]
push 0x6c
pop eax
movsx ecx, al
mov byte [ebp - 0xb4], al
movups xmmword [ebp - 0x8c], xmm0
mov dword [ebp - 0x7c], 0x10d0918
mov byte [ebp - 0x78], bl
call fcn.0043cfd7
mov dword [ebp - 0x1e0], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1e0]
call fcn.0043d016
mov dword [ebp + edx*4 - 0xb0], eax
inc edx
pop ecx
cmp edx, edi
jl 0x444c14
push 0x14
lea eax, [ebp - 0xb0]
push eax
lea eax, [ebp - 0x8c]
push eax
call fcn.0043d333
movsx ecx, byte [ebp - 0xb4]
mov dword [ebp - 0x90], eax
call fcn.0043cfd7
mov dword [ebp - 0x1e0], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1e0]
call fcn.0043d016
mov dword [ebp + edx*4 - 0xb0], eax
inc edx
pop ecx
cmp edx, edi
jl 0x444c5c
push dword [0x487200]
lea eax, [ebp - 0xb0]
push eax
push dword [ebp - 0x90]
call fcn.0043d3a9
test eax, eax
jne 0x444c95
mov eax, ebx
jmp 0x444ca9
mov dl, byte [ebp - 0xb4]
mov ecx, ebx
xor byte [ecx + eax], dl
inc ecx
cmp ecx, 0x14
jb 0x444c9d
mov byte [eax + 0x14], bl
sub esp, 0x18
mov ecx, esp
push eax
call fcn.0044b51b
mov edx, esi
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x194]
call fcn.0043f5e1
add esp, 0x30
mov byte [ebp - 4], 3
push 0x56
pop eax
movsx ecx, al
mov byte [ebp - 0x50], al
mov dword [ebp - 0x28], 0x3517767b
mov dword [ebp - 0x24], 0x38233935
mov dword [ebp - 0x20], 0x5c6c2522
mov word [ebp - 0x1c], 0x5c2a
mov byte [ebp - 0x1a], bl
call fcn.0043cfd7
mov dword [ebp - 0x1e0], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1e0]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x4c], eax
inc edx
pop ecx
cmp edx, edi
jl 0x444d00
push 0xe
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0043d333
movsx ecx, byte [ebp - 0x50]
mov dword [ebp - 0x2c], eax
call fcn.0043cfd7
mov dword [ebp - 0x1e0], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1e0]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x4c], eax
inc edx
pop ecx
cmp edx, edi
jl 0x444d39
push dword [0x487200]
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x2c]
call fcn.0043d3a9
mov esi, eax
test esi, esi
jne 0x444d6b
mov esi, ebx
jmp 0x444d7c
mov cl, byte [ebp - 0x50]
mov eax, ebx
xor byte [eax + esi], cl
inc eax
cmp eax, 0xe
jb 0x444d70
mov byte [esi + 0xe], bl
push 0x47a7c4
lea ecx, [ebp - 0x194]
call fcn.0044cae0
test al, al
jne 0x444de0
lea eax, [ebp - 0x194]
mov edx, str.__GLogin:
push eax
lea ecx, [ebp - 0xec]
call fcn.0044bcbd
mov byte [ebp - 4], 4
mov ecx, eax
mov dword [ebp - 0x1e4], 1
mov dword [esp], 0x47ee64
call fcn.0044b441
push eax
lea ecx, [ebp - 0x134]
call fcn.0044b4e8
lea ecx, [ebp - 0x134]
mov dword [ebp - 4], 5
push 0xb
jmp 0x444e09
mov dword [ebp - 0x68], ebx
lea ecx, [ebp - 0x68]
push 0x47a7c4
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], 0xf
mov byte [ebp - 0x68], bl
call fcn.0044b945
lea ecx, [ebp - 0x68]
mov dword [ebp - 4], 6
push 4
pop eax
push esi
mov dword [ebp - 0x1e4], eax
mov dword [ebp - 0x1e0], eax
call fcn.0044b441
push eax
lea ecx, [ebp - 0x11c]
call fcn.0044b4e8
mov eax, dword [ebp - 0x1e0]
or eax, 0x10
mov dword [ebp - 0x1e0], eax
mov dword [ebp - 0x1e4], eax
mov dword [ebp - 4], 7
test al, 4
je 0x444e65
and eax, 0xfffffffb
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x1e0], eax
mov dword [ebp - 0x1e4], eax
call fcn.0044b89e
mov eax, dword [ebp - 0x1e0]
test al, 2
je 0x444e89
and eax, 0xfffffffd
lea ecx, [ebp - 0x134]
mov dword [ebp - 0x1e0], eax
mov dword [ebp - 0x1e4], eax
call fcn.0044b89e
mov eax, dword [ebp - 0x1e0]
mov byte [ebp - 4], 0xa
test al, 1
je 0x444eab
and eax, 0xfffffffe
lea ecx, [ebp - 0xec]
mov dword [ebp - 0x1e0], eax
mov dword [ebp - 0x1e4], eax
call fcn.0044b89e
push 0x5c
pop eax
movsx ecx, al
mov byte [ebp - 0x48], al
mov dword [ebp - 0x20], 0x3d39280f
mov word [ebp - 0x1c], 0x7331
mov byte [ebp - 0x1a], bl
call fcn.0043cfd7
mov dword [ebp - 0x1e8], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1e8]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x44], eax
inc edx
pop ecx
cmp edx, edi
jl 0x444ed1
push 6
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0043d333
movsx ecx, byte [ebp - 0x48]
mov dword [ebp - 0x24], eax
call fcn.0043cfd7
mov dword [ebp - 0x1e8], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1e8]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x44], eax
inc edx
pop ecx
cmp edx, edi
jl 0x444f0a
push dword [0x487200]
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x24]
call fcn.0043d3a9
test eax, eax
jne 0x444f3a
mov eax, ebx
jmp 0x444f4b
mov dl, byte [ebp - 0x48]
mov ecx, ebx
xor byte [ecx + eax], dl
inc ecx
cmp ecx, 6
jb 0x444f3f
mov byte [eax + 6], bl
mov dword [ebp - 0xd4], ebx
lea ecx, [ebp - 0xd4]
push eax
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xc0], 0xf
mov byte [ebp - 0xd4], bl
call fcn.0044b945
push ecx
lea eax, [ebp - 0x164]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [ebp - 0x134]
call fcn.0044c02b
push ecx
lea eax, [ebp - 0x134]
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp - 0x1fc]
call fcn.0043e195
lea ecx, [ebp - 0x134]
call fcn.0044b6d9
lea eax, [ebp - 0x1fc]
push eax
lea ecx, [ebp - 0x204]
call fcn.0044070c
mov edi, dword [ebp - 0x204]
mov esi, dword [ebp - 0x200]
mov dword [ebp - 0x1f4], edi
mov dword [ebp - 0x1f0], esi
lea eax, [ebp - 0x1fc]
push eax
lea ecx, [ebp - 0x204]
call fcn.0044070c
mov ecx, dword [ebp - 0x200]
xorps xmm0, xmm0
movlpd qword [ebp - 0x1ec], xmm0
mov eax, ebx
mov dword [ebp - 0x1ec], eax
mov dword [ebp - 0x1e8], ebx
test ecx, ecx
je 0x445012
call fcn.0042a587
mov eax, ebx
cmp edi, eax
je 0x4451a6
lea eax, [ebp - 0x214]
mov byte [ebp - 4], 0x12
push eax
mov ecx, edi
call fcn.0043de86
mov ecx, eax
cmp dword [ecx], 3
mov eax, dword [ecx + 4]
mov dword [ebp - 0x208], eax
je 0x445160
lea eax, [ebp - 0x14c]
add edi, 0x20
push eax
mov ecx, edi
call fcn.0043d919
lea ecx, [ebp - 0xec]
mov byte [ebp - 4], 0x13
push ecx
mov ecx, eax
call fcn.0043d8ed
push ecx
push str.ssfn
mov ecx, eax
call fcn.0044b37c
lea ecx, [ebp - 0xec]
mov esi, eax
call fcn.0044b89e
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x12
call fcn.0044b6d9
cmp esi, 0xffffffff
je 0x445160
lea eax, [ebp - 0x134]
mov ecx, edi
push eax
call fcn.0043d8ed
mov esi, eax
mov byte [ebp - 4], 0x14
cmp dword [esi + 0x14], 0x10
jb 0x4450b1
mov esi, dword [esi]
lea eax, [ebp - 0x14c]
mov ecx, edi
push eax
call fcn.0043d919
lea ecx, [ebp - 0xec]
mov byte [ebp - 4], 0x15
push ecx
mov ecx, eax
call fcn.0043d8ed
mov ecx, eax
mov byte [ebp - 4], 0x16
lea eax, [ebp - 0xd4]
cmp dword [ebp - 0xc0], 0x10
push dword [ebp - 0xc4]
cmovae eax, dword [ebp - 0xd4]
push eax
push ecx
call fcn.0044cd42
push eax
lea ecx, [ebp - 0x68]
call fcn.0044b4e8
mov edi, dword [ebp - 0x1e0]
or edi, 0x20
mov dword [ebp - 0x1e0], edi
mov dword [ebp - 0x1e4], edi
mov byte [ebp - 4], 0x17
lea edx, [ebp - 0x68]
cmp dword [ebp - 0x54], 0x10
mov ecx, dword [0x486fbc]
cmovae edx, dword [ebp - 0x68]
push 2
push ebx
push esi
call fcn.0042e156
add esp, 0xc
lea ecx, [ebp - 0x68]
call fcn.0044b89e
lea ecx, [ebp - 0xec]
call fcn.0044b89e
lea ecx, [ebp - 0x14c]
call fcn.0044b6d9
lea ecx, [ebp - 0x134]
call fcn.0044b89e
mov dword [ebp - 4], 0x11
jmp 0x445184
lea ecx, [ebp - 0x1f4]
call fcn.0043e1d8
mov esi, dword [ebp - 0x1f0]
mov edi, dword [ebp - 0x1f4]
mov eax, dword [ebp - 0x1ec]
jmp 0x445012
test esi, esi
je 0x4451b1
mov ecx, esi
call fcn.0042a587
mov ecx, dword [ebp - 0x1f8]
test ecx, ecx
je 0x4451c0
call fcn.0042a587
mov dword [ebp - 4], 0xb
jmp 0x4451e4
push 0x13
pop ecx
push 0x63
mov byte [ebp - 0x48], cl
pop eax
movsx ecx, cl
mov word [ebp - 0x20], 0x7c70
mov byte [ebp - 0x1e], al
mov dword [ebp - 0x1d], 0x4c6a727f
mov byte [ebp - 0x19], bl
call fcn.0043cfd7
mov dword [ebp - 0x1e8], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1e8]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x44], eax
inc edx
pop ecx
cmp edx, 8
jl 0x445210
push 7
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0043d333
movsx ecx, byte [ebp - 0x48]
mov dword [ebp - 0x24], eax
call fcn.0043cfd7
mov dword [ebp - 0x1e8], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1e8]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x44], eax
inc edx
pop ecx
cmp edx, 8
jl 0x44524a
push dword [0x487200]
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x24]
call fcn.0043d3a9
test eax, eax
jne 0x44527b
mov eax, ebx
jmp 0x44528c
mov dl, byte [ebp - 0x48]
mov ecx, ebx
xor byte [eax + ecx], dl
inc ecx
cmp ecx, 7
jb 0x445280
mov byte [eax + 7], bl
mov dword [ebp - 0x104], ebx
lea ecx, [ebp - 0x104]
push eax
mov dword [ebp - 0xf4], ebx
mov dword [ebp - 0xf0], 0xf
mov byte [ebp - 0x104], bl
call fcn.0044b945
mov byte [ebp - 4], 0x1a
push 0x63
pop eax
movsx ecx, al
mov byte [ebp - 0x50], al
mov dword [ebp - 0x28], 0x2061730
mov dword [ebp - 0x24], 0xc004c0e
mov dword [ebp - 0x20], 0x40a050d
mov word [ebp - 0x1c], 0x4c
call fcn.0043cfd7
mov dword [ebp - 0x1e8], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1e8]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x4c], eax
inc edx
pop ecx
cmp edx, 8
jl 0x4452e9
push 0xd
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0043d333
movsx ecx, byte [ebp - 0x50]
mov dword [ebp - 0x2c], eax
call fcn.0043cfd7
mov dword [ebp - 0x1e8], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1e8]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x4c], eax
inc edx
pop ecx
cmp edx, 8
jl 0x445323
push dword [0x487200]
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x2c]
call fcn.0043d3a9
test eax, eax
jne 0x445354
mov eax, ebx
jmp 0x445365
mov dl, byte [ebp - 0x50]
mov ecx, ebx
xor byte [eax + ecx], dl
inc ecx
cmp ecx, 0xd
jb 0x445359
mov byte [eax + 0xd], bl
push eax
lea ecx, [ebp - 0xd4]
call fcn.0044b945
mov al, 0x7a
mov byte [ebp - 4], 0x1b
movsx ecx, al
mov byte [ebp - 0x48], al
mov dword [ebp - 0x20], 0x14151926
mov dword [ebp - 0x1c], 0x1d131c
call fcn.0043cfd7
mov dword [ebp - 0x1e8], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1e8]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x44], eax
inc edx
pop ecx
cmp edx, 8
jl 0x445398
push 7
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0043d333
movsx ecx, byte [ebp - 0x48]
mov dword [ebp - 0x24], eax
call fcn.0043cfd7
mov dword [ebp - 0x1e8], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1e8]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x44], eax
inc edx
pop ecx
cmp edx, 8
jl 0x4453d2
push dword [0x487200]
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x24]
call fcn.0043d3a9
test eax, eax
jne 0x445403
mov eax, ebx
jmp 0x445414
mov dl, byte [ebp - 0x48]
mov ecx, ebx
xor byte [eax + ecx], dl
inc ecx
cmp ecx, 7
jb 0x445408
mov byte [eax + 7], bl
push eax
lea edx, [ebp - 0x164]
lea ecx, [ebp - 0xec]
call fcn.0044bd40
pop ecx
push ecx
push eax
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 0x1c
call fcn.0044c02b
push ecx
lea eax, [ebp - 0x134]
mov byte [ebp - 4], 0x1d
push eax
lea ecx, [ebp - 0x204]
call fcn.0043e195
lea ecx, [ebp - 0x134]
call fcn.0044b6d9
lea ecx, [ebp - 0xec]
call fcn.0044b89e
lea eax, [ebp - 0x204]
push eax
lea ecx, [ebp - 0x1fc]
call fcn.0044070c
mov edi, dword [ebp - 0x1fc]
mov esi, dword [ebp - 0x1f8]
mov dword [ebp - 0x20c], edi
mov dword [ebp - 0x208], esi
lea eax, [ebp - 0x204]
push eax
lea ecx, [ebp - 0x214]
call fcn.0044070c
mov ecx, dword [ebp - 0x210]
xorps xmm0, xmm0
movlpd qword [ebp - 0x1fc], xmm0
mov eax, ebx
mov dword [ebp - 0x1fc], eax
mov dword [ebp - 0x1f8], ebx
test ecx, ecx
je 0x4454cb
call fcn.0042a587
mov eax, ebx
cmp edi, eax
je 0x4458dc
lea eax, [ebp - 0x21c]
mov byte [ebp - 4], 0x23
push eax
mov ecx, edi
call fcn.0043de86
mov ecx, eax
cmp dword [ecx], 3
mov eax, dword [ecx + 4]
mov dword [ebp - 0x1f0], eax
je 0x445896
add edi, 0x20
lea eax, [ebp - 0x14c]
push eax
mov ecx, edi
mov dword [ebp - 0x1f0], edi
call fcn.0043d919
lea ecx, [ebp - 0xec]
mov byte [ebp - 4], 0x24
push ecx
mov ecx, eax
call fcn.0043d8ed
cmp dword [ebp - 0xf0], 0x10
lea ecx, [ebp - 0x104]
cmovae ecx, dword [ebp - 0x104]
cmp dword [eax + 0x14], 0x10
mov edx, dword [eax + 0x10]
jb 0x445541
mov eax, dword [eax]
push dword [ebp - 0xf4]
push ecx
push ecx
mov ecx, eax
call fcn.0044c52e
add esp, 0xc
lea ecx, [ebp - 0xec]
mov esi, eax
call fcn.0044b89e
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x23
call fcn.0044b6d9
cmp esi, 0xffffffff
je 0x4457ce
lea eax, [ebp - 0x30]
mov ecx, edi
push eax
call fcn.0043d919
lea ecx, [ebp - 0x17c]
mov byte [ebp - 4], 0x25
push ecx
mov ecx, eax
call fcn.0043d8ed
mov esi, eax
lea eax, [ebp - 0x1ac]
mov byte [ebp - 4], 0x26
push eax
mov ecx, edi
call fcn.0043d919
lea ecx, [ebp - 0x1dc]
mov byte [ebp - 4], 0x27
push ecx
mov ecx, eax
call fcn.0043d8ed
mov byte [ebp - 4], 0x28
mov ecx, esi
mov eax, dword [eax + 0x10]
sub eax, 0xb
push eax
push 7
lea eax, [ebp - 0x1c4]
push eax
call fcn.0044b2f0
mov edi, eax
mov byte [ebp - 4], 0x29
movaps xmm0, xmmword [0x47f570]
push 0x1a
pop eax
movups xmmword [ebp - 0x94], xmm0
movsx ecx, al
movaps xmm0, xmmword [0x47f560]
mov byte [ebp - 0xbc], al
movups xmmword [ebp - 0x84], xmm0
mov dword [ebp - 0x74], 0x35697f
call fcn.0043cfd7
mov dword [ebp - 0x1e8], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1e8]
call fcn.0043d016
mov dword [ebp + edx*4 - 0xb8], eax
inc edx
pop ecx
cmp edx, 8
jl 0x445618
push 0x23
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0x94]
push eax
call fcn.0043d333
movsx ecx, byte [ebp - 0xbc]
mov dword [ebp - 0x98], eax
call fcn.0043cfd7
mov dword [ebp - 0x1e8], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1e8]
call fcn.0043d016
mov dword [ebp + edx*4 - 0xb8], eax
inc edx
pop ecx
cmp edx, 8
jl 0x445661
push dword [0x487200]
lea eax, [ebp - 0xb8]
push eax
push dword [ebp - 0x98]
call fcn.0043d3a9
mov esi, eax
test esi, esi
jne 0x44569d
mov esi, ebx
jmp 0x4456b1
mov cl, byte [ebp - 0xbc]
mov eax, ebx
xor byte [esi + eax], cl
inc eax
cmp eax, 0x23
jb 0x4456a5
mov byte [esi + 0x23], bl
mov dword [ebp - 0x68], ebx
lea ecx, [ebp - 0x68]
push 0x47ee7c
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], 0xf
mov byte [ebp - 0x68], bl
call fcn.0044b945
push esi
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0x2a
call fcn.0044b441
push eax
lea ecx, [ebp - 0xec]
call fcn.0044b4e8
mov esi, dword [ebp - 0x1e0]
or esi, 0x40
mov dword [ebp - 0x1e4], esi
push edi
lea eax, [ebp - 0xec]
mov byte [ebp - 4], 0x2b
push eax
push dword [ebp - 0x1f0]
lea ecx, [ebp - 0x14c]
call fcn.0044cb1e
or esi, 0x80
mov dword [ebp - 0x1e4], esi
push 0x47ad84
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x2c
call fcn.0044b441
push eax
lea ecx, [ebp - 0x134]
call fcn.0044b4e8
or esi, 0x100
mov dword [ebp - 0x1e0], esi
mov dword [ebp - 0x1e4], esi
lea eax, [ebp - 0x134]
mov byte [ebp - 4], 0x2d
push eax
lea ecx, [ebp - 0x11c]
call fcn.0044b462
lea ecx, [ebp - 0x134]
call fcn.0044b89e
lea ecx, [ebp - 0x14c]
call fcn.0044b89e
lea ecx, [ebp - 0xec]
call fcn.0044b89e
lea ecx, [ebp - 0x68]
call fcn.0044b89e
lea ecx, [ebp - 0x1c4]
call fcn.0044b89e
lea ecx, [ebp - 0x1dc]
call fcn.0044b89e
lea ecx, [ebp - 0x1ac]
call fcn.0044b6d9
lea ecx, [ebp - 0x17c]
call fcn.0044b89e
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x23
call fcn.0044b6d9
mov edi, dword [ebp - 0x1f0]
lea eax, [ebp - 0x1ac]
mov ecx, edi
push eax
call fcn.0043d8ed
mov esi, eax
mov byte [ebp - 4], 0x2e
cmp dword [esi + 0x14], 0x10
jb 0x4457ea
mov esi, dword [esi]
lea eax, [ebp - 0x17c]
mov ecx, edi
push eax
call fcn.0043d919
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x2f
push ecx
mov ecx, eax
call fcn.0043d8ed
mov ecx, eax
mov byte [ebp - 4], 0x30
lea eax, [ebp - 0xd4]
cmp dword [ebp - 0xc0], 0x10
push dword [ebp - 0xc4]
cmovae eax, dword [ebp - 0xd4]
push eax
push ecx
call fcn.0044cd42
push eax
lea ecx, [ebp - 0x68]
call fcn.0044b4e8
mov edi, dword [ebp - 0x1e0]
or edi, 0x200
mov dword [ebp - 0x1e0], edi
mov dword [ebp - 0x1e4], edi
mov byte [ebp - 4], 0x31
lea edx, [ebp - 0x68]
cmp dword [ebp - 0x54], 0x10
mov ecx, dword [0x486fbc]
cmovae edx, dword [ebp - 0x68]
push 2
push ebx
push esi
call fcn.0042e156
add esp, 0xc
lea ecx, [ebp - 0x68]
call fcn.0044b89e
lea ecx, [ebp - 0x30]
call fcn.0044b89e
lea ecx, [ebp - 0x17c]
call fcn.0044b6d9
lea ecx, [ebp - 0x1ac]
call fcn.0044b89e
mov dword [ebp - 4], 0x22
jmp 0x4458ba
lea ecx, [ebp - 0x20c]
call fcn.0043e1d8
mov esi, dword [ebp - 0x208]
mov edi, dword [ebp - 0x20c]
mov eax, dword [ebp - 0x1fc]
jmp 0x4454cb
test esi, esi
je 0x4458e7
mov ecx, esi
call fcn.0042a587
mov ecx, dword [ebp - 0x200]
test ecx, ecx
je 0x4458f6
call fcn.0042a587
mov dword [ebp - 4], 0x1a
jmp 0x44591a
cmp dword [ebp - 0xf0], 0x10
lea eax, [ebp - 0x104]
mov dword [ebp - 0xf4], ebx
lea ecx, [ebp - 0x11c]
cmovae eax, dword [ebp - 0x104]
push str._n__Games:_n_n
mov byte [eax], bl
lea eax, [ebp - 0xd4]
cmp dword [ebp - 0xc0], 0x10
mov dword [ebp - 0xc4], ebx
cmovae eax, dword [ebp - 0xd4]
mov byte [eax], bl
call fcn.0044b441
mov byte [ebp - 4], 0x34
movaps xmm0, xmmword [0x47f4f0]
push 0xa
pop eax
movsx ecx, al
mov byte [ebp - 0xac], al
movups xmmword [ebp - 0x84], xmm0
mov word [ebp - 0x74], 0x5664
mov byte [ebp - 0x72], bl
call fcn.0043cfd7
mov dword [ebp - 0x1f0], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1f0]
call fcn.0043d016
mov dword [ebp + edx*4 - 0xa8], eax
inc edx
pop ecx
cmp edx, 8
jl 0x445996
push 0x12
lea eax, [ebp - 0xa8]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.0043d333
movsx ecx, byte [ebp - 0xac]
mov dword [ebp - 0x88], eax
call fcn.0043cfd7
mov dword [ebp - 0x1f0], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1f0]
call fcn.0043d016
mov dword [ebp + edx*4 - 0xa8], eax
inc edx
pop ecx
cmp edx, 8
jl 0x4459df
push dword [0x487200]
lea eax, [ebp - 0xa8]
push eax
push dword [ebp - 0x88]
call fcn.0043d3a9
test eax, eax
jne 0x445a19
mov eax, ebx
jmp 0x445a2d
mov dl, byte [ebp - 0xac]
mov ecx, ebx
xor byte [ecx + eax], dl
inc ecx
cmp ecx, 0x12
jb 0x445a21
mov byte [eax + 0x12], bl
push eax
lea edx, [ebp - 0x164]
lea ecx, [ebp - 0x30]
call fcn.0044bd40
pop ecx
push ecx
push eax
lea ecx, [ebp - 0xec]
mov byte [ebp - 4], 0x35
call fcn.0044c02b
push ecx
lea eax, [ebp - 0xec]
mov byte [ebp - 4], 0x36
push eax
lea ecx, [ebp - 0x204]
call fcn.0043e195
lea ecx, [ebp - 0xec]
call fcn.0044b6d9
lea ecx, [ebp - 0x30]
call fcn.0044b89e
lea eax, [ebp - 0x204]
push eax
lea ecx, [ebp - 0x20c]
call fcn.0044070c
mov esi, dword [ebp - 0x20c]
mov edi, dword [ebp - 0x208]
mov dword [ebp - 0x1fc], esi
mov dword [ebp - 0x1f8], edi
lea eax, [ebp - 0x204]
push eax
lea ecx, [ebp - 0x214]
call fcn.0044070c
mov ecx, dword [ebp - 0x210]
xorps xmm0, xmm0
movlpd qword [ebp - 0x20c], xmm0
mov dword [ebp - 0x20c], ebx
mov dword [ebp - 0x208], ebx
test ecx, ecx
je 0x445ada
call fcn.0042a587
mov byte [ebp - 4], 0x3b
cmp esi, ebx
je 0x445bdc
lea eax, [ebp - 0x21c]
mov ecx, esi
push eax
call fcn.0043de86
mov ecx, eax
cmp dword [ecx], 3
mov eax, dword [ecx + 4]
mov dword [ebp - 0x1f0], eax
jne 0x445bc0
lea eax, [ebp - 0x17c]
lea ecx, [esi + 0x20]
push eax
call fcn.0043d919
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x3c
push ecx
mov ecx, eax
call fcn.0043d8ed
push 2
push 0x47ee7c
push ecx
mov ecx, eax
mov byte [ebp - 4], 0x3d
call fcn.0044cd42
push eax
lea ecx, [ebp - 0x14c]
call fcn.0044b4e8
mov esi, dword [ebp - 0x1e0]
or esi, 0x400
push 0x47ad84
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x3e
call fcn.0044b441
push eax
lea ecx, [ebp - 0xec]
call fcn.0044b4e8
or esi, 0x800
mov dword [ebp - 0x1e0], esi
lea eax, [ebp - 0xec]
mov byte [ebp - 4], 0x3f
push eax
lea ecx, [ebp - 0x11c]
call fcn.0044b462
lea ecx, [ebp - 0xec]
call fcn.0044b89e
lea ecx, [ebp - 0x14c]
call fcn.0044b89e
lea ecx, [ebp - 0x30]
call fcn.0044b89e
lea ecx, [ebp - 0x17c]
mov byte [ebp - 4], 0x3b
call fcn.0044b6d9
lea ecx, [ebp - 0x1fc]
call fcn.0043e1d8
mov edi, dword [ebp - 0x1f8]
mov esi, dword [ebp - 0x1fc]
jmp 0x445ade
test edi, edi
je 0x445be7
mov ecx, edi
call fcn.0042a587
mov ecx, dword [ebp - 0x200]
test ecx, ecx
je 0x445c00
call fcn.0042a587
jmp 0x445c00
push 0x47a7c4
lea ecx, [ebp - 0x11c]
mov dword [ebp - 4], 0x1a
call fcn.0044cae0
test al, al
jne 0x445d06
cmp dword [ebp - 0x108], 0x10
lea esi, [ebp - 0x11c]
movaps xmm0, xmmword [0x47f1a0]
mov edi, dword [ebp - 0x10c]
cmovae esi, dword [ebp - 0x11c]
push 0x2d
pop eax
movsx ecx, al
mov byte [ebp - 0x50], al
movups xmmword [ebp - 0x28], xmm0
call fcn.0043cfd7
mov dword [ebp - 0x1f0], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1f0]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x4c], eax
inc edx
pop ecx
cmp edx, 8
jl 0x445c5a
push 0xf
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0043d333
movsx ecx, byte [ebp - 0x50]
mov dword [ebp - 0x2c], eax
call fcn.0043cfd7
mov dword [ebp - 0x1f0], eax
mov edx, ebx
push edx
lea ecx, [ebp - 0x1f0]
call fcn.0043d016
mov dword [ebp + edx*4 - 0x4c], eax
inc edx
pop ecx
cmp edx, 8
jl 0x445c94
push dword [0x487200]
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x2c]
call fcn.0043d3a9
test eax, eax
jne 0x445cc5
mov eax, ebx
jmp 0x445cd6
mov dl, byte [ebp - 0x50]
mov ecx, ebx
xor byte [eax + ecx], dl
inc ecx
cmp ecx, 0xf
jb 0x445cca
mov byte [eax + 0xf], bl
mov ecx, dword [0x486fbc]
mov edx, eax
push 3
push edi
push esi
call fcn.0042e156
add esp, 0xc
mov dword [ebp - 0x10c], ebx
cmp dword [ebp - 0x108], 0x10
lea eax, [ebp - 0x11c]
cmovae eax, dword [ebp - 0x11c]
mov byte [eax], bl
lea ecx, [ebp - 0x104]
call fcn.0044b89e
lea ecx, [ebp - 0xd4]
call fcn.0044b89e
lea ecx, [ebp - 0x11c]
call fcn.0044b89e
lea ecx, [ebp - 0x194]
call fcn.0044b89e
cmp dword [ebp - 0x150], 0x10
lea eax, [ebp - 0x164]
mov dword [ebp - 0x154], ebx
lea ecx, [ebp - 0x164]
cmovae eax, dword [ebp - 0x164]
mov byte [eax], bl
call fcn.0044b89e
call fcn.0046bb38
ret