Function at 0x100040708
Capabilities:
Hide graphical window

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x98
mov rcx, qword [0x1000a1940]
mov edi, 0x3fd
mov edx, edi
call qword [sym.imp.USER32.dll_GetDlgItem]
xor r9d, r9d
xor r8d, r8d
mov rcx, rax
mov edx, 0x188
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [0x1000a1940]
lea edx, [rdi - 1]
mov rbx, rax
call qword [sym.imp.USER32.dll_GetDlgItem]
mov r12, rax
call qword [sym.imp.USER32.dll_GetFocus]
cmp rax, r12
jne 0x10004078d
mov rcx, qword [0x1000a1940]
mov edx, edi
call qword [sym.imp.USER32.dll_GetDlgItem]
mov rcx, qword [0x1000a1940]
mov edx, 0x28
lea r9d, [rdx - 0x27]
mov r8, rax
call qword [sym.imp.USER32.dll_PostMessageW]
xor edx, edx
mov rcx, r12
call qword [sym.imp.USER32.dll_EnableWindow]
cmp ebx, 0xffffffff
je 0x10004117f
mov rcx, qword [0x1000a1938]
xor r14d, r14d
mov dword [0x1000a1884], ebx
cmp rcx, r14
je 0x1000407bc
call qword [sym.imp.USER32.dll_DestroyWindow]
mov r8, qword [0x1000a1940]
mov rcx, qword [0x10009e148]
mov qword [rsp + 0x20], r14
lea r9, [0x100041338]
cmp ebx, r14d
jne 0x100040e96
mov edx, 0x76
call qword [sym.imp.USER32.dll_CreateDialogParamW]
mov rcx, qword [0x1000a1940]
lea rdx, [rsp + 0x80]
mov qword [0x1000a1938], rax
call qword [sym.imp.USER32.dll_GetClientRect]
mov rcx, qword [0x1000a1938]
lea rdx, [rsp + 0x70]
call qword [sym.imp.USER32.dll_GetClientRect]
mov r8d, dword [rsp + 0x88]
mov r9d, dword [rsp + 0x74]
sub r8d, dword [rsp + 0x78]
mov rcx, qword [0x1000a1938]
mov dword [rsp + 0x30], 5
xor edx, edx
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r14d
call qword [sym.imp.USER32.dll_SetWindowPos]
mov r11, qword [0x10009e150]
mov edx, 0x472
mov rax, qword [r11 + 0x80]
mov rcx, qword [r11 + 0x88]
mov ebp, 0x10
mov r12d, r14d
mov rdi, r14
mov qword [rsp + 0xe8], r14
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0xf8], rcx
lea ebx, [rbp - 0xf]
lea r8d, [rdx - 2]
lea r9d, [rdx - 3]
jmp 0x100040898
xor r14d, r14d
mov eax, r12d
cmp r12d, r14d
je 0x1000408c9
sub eax, ebx
je 0x1000408be
cmp eax, ebx
je 0x1000408b3
mov ebx, 0x43b
mov r13w, dx
jmp 0x1000408d2
mov ebx, 0x43a
lea r13d, [rbx + 0x37]
jmp 0x1000408d2
mov ebx, 0x439
mov r13w, r8w
jmp 0x1000408d2
mov ebx, 0x428
mov r13w, r9w
lea rdx, [rsp + 0x58]
mov r8d, r12d
mov dword [rsp + 0xe0], r13d
call fcn.1000463a0
mov rcx, qword [0x1000a1938]
movzx edx, bx
mov r8, qword [rax + 0x10]
call qword [sym.imp.USER32.dll_SetDlgItemTextW]
mov rcx, qword [rsp + 0x68]
call sub.msvcrt.dll_free
mov r13, qword [rsp + 0xf0]
mov r15d, r14d
mov esi, r14d
mov ebx, 1
mov eax, r12d
test r12d, r12d
je 0x100040be0
sub eax, ebx
je 0x100040afc
cmp eax, ebx
je 0x100040a18
cmp esi, 7
ja 0x1000409a9
je 0x10004099f
mov eax, esi
test esi, esi
je 0x100040995
sub eax, ebx
je 0x10004098b
sub eax, ebx
je 0x100040981
sub eax, ebx
je 0x100040977
sub eax, ebx
je 0x10004096d
sub eax, ebx
je 0x100040963
cmp eax, ebx
jne 0x1000409c8
mov ebx, 0x44a
jmp 0x100040c95
mov ebx, 0x449
jmp 0x100040c95
mov ebx, 0x448
jmp 0x100040c95
mov ebx, 0x438
jmp 0x100040c95
mov ebx, 0x437
jmp 0x100040c95
mov ebx, 0x436
jmp 0x100040c95
mov ebx, 0x435
jmp 0x100040c95
mov ebx, 0x44b
jmp 0x100040c95
mov eax, esi
sub eax, 8
je 0x100040a0e
sub eax, ebx
je 0x100040a04
sub eax, ebx
je 0x1000409fa
sub eax, ebx
je 0x1000409f0
sub eax, ebx
je 0x1000409e6
sub eax, ebx
je 0x1000409dc
cmp eax, ebx
je 0x1000409d2
mov ebx, 0x46b
jmp 0x100040c95
mov ebx, 0x46a
jmp 0x100040c95
mov ebx, 0x469
jmp 0x100040c95
mov ebx, 0x468
jmp 0x100040c95
mov ebx, 0x45b
jmp 0x100040c95
mov ebx, 0x45a
jmp 0x100040c95
mov ebx, 0x459
jmp 0x100040c95
mov ebx, 0x458
jmp 0x100040c95
cmp esi, 7
ja 0x100040a8d
je 0x100040a83
mov eax, esi
test esi, esi
je 0x100040a79
sub eax, ebx
je 0x100040a6f
sub eax, ebx
je 0x100040a65
sub eax, ebx
je 0x100040a5b
sub eax, ebx
je 0x100040a51
sub eax, ebx
je 0x100040a47
cmp eax, ebx
jne 0x100040aac
mov ebx, 0x446
jmp 0x100040c95
mov ebx, 0x445
jmp 0x100040c95
mov ebx, 0x444
jmp 0x100040c95
mov ebx, 0x434
jmp 0x100040c95
mov ebx, 0x433
jmp 0x100040c95
mov ebx, 0x432
jmp 0x100040c95
mov ebx, 0x431
jmp 0x100040c95
mov ebx, 0x447
jmp 0x100040c95
mov eax, esi
sub eax, 8
je 0x100040af2
sub eax, ebx
je 0x100040ae8
sub eax, ebx
je 0x100040ade
sub eax, ebx
je 0x100040ad4
sub eax, ebx
je 0x100040aca
sub eax, ebx
je 0x100040ac0
cmp eax, ebx
je 0x100040ab6
mov ebx, 0x467
jmp 0x100040c95
mov ebx, 0x466
jmp 0x100040c95
mov ebx, 0x465
jmp 0x100040c95
mov ebx, 0x464
jmp 0x100040c95
mov ebx, 0x457
jmp 0x100040c95
mov ebx, 0x456
jmp 0x100040c95
mov ebx, 0x455
jmp 0x100040c95
mov ebx, 0x454
jmp 0x100040c95
cmp esi, 7
ja 0x100040b71
je 0x100040b67
mov eax, esi
test esi, esi
je 0x100040b5d
sub eax, ebx
je 0x100040b53
sub eax, ebx
je 0x100040b49
sub eax, ebx
je 0x100040b3f
sub eax, ebx
je 0x100040b35
sub eax, ebx
je 0x100040b2b
cmp eax, ebx
jne 0x100040b90
mov ebx, 0x442
jmp 0x100040c95
mov ebx, 0x441
jmp 0x100040c95
mov ebx, 0x440
jmp 0x100040c95
mov ebx, 0x430
jmp 0x100040c95
mov ebx, 0x42f
jmp 0x100040c95
mov ebx, 0x42e
jmp 0x100040c95
mov ebx, 0x42d
jmp 0x100040c95
mov ebx, 0x443
jmp 0x100040c95
mov eax, esi
sub eax, 8
je 0x100040bd6
sub eax, ebx
je 0x100040bcc
sub eax, ebx
je 0x100040bc2
sub eax, ebx
je 0x100040bb8
sub eax, ebx
je 0x100040bae
sub eax, ebx
je 0x100040ba4
cmp eax, ebx
je 0x100040b9a
mov ebx, 0x463
jmp 0x100040c95
mov ebx, 0x462
jmp 0x100040c95
mov ebx, 0x461
jmp 0x100040c95
mov ebx, 0x460
jmp 0x100040c95
mov ebx, 0x453
jmp 0x100040c95
mov ebx, 0x452
jmp 0x100040c95
mov ebx, 0x451
jmp 0x100040c95
mov ebx, 0x450
jmp 0x100040c95
cmp esi, 7
ja 0x100040c40
je 0x100040c39
mov eax, esi
test esi, esi
je 0x100040c32
sub eax, ebx
je 0x100040c2b
sub eax, ebx
je 0x100040c24
sub eax, ebx
je 0x100040c1d
sub eax, ebx
je 0x100040c16
sub eax, ebx
je 0x100040c0f
cmp eax, ebx
jne 0x100040c5f
mov ebx, 0x43e
jmp 0x100040c95
mov ebx, 0x43d
jmp 0x100040c95
mov ebx, 0x43c
jmp 0x100040c95
mov ebx, 0x42c
jmp 0x100040c95
mov ebx, 0x42b
jmp 0x100040c95
mov ebx, 0x42a
jmp 0x100040c95
mov ebx, 0x429
jmp 0x100040c95
mov ebx, 0x43f
jmp 0x100040c95
mov eax, esi
sub eax, 8
je 0x100040c90
sub eax, ebx
je 0x100040c89
sub eax, ebx
je 0x100040c82
sub eax, ebx
je 0x100040c7b
sub eax, ebx
je 0x100040c74
sub eax, ebx
je 0x100040c6d
cmp eax, ebx
je 0x100040c66
mov ebx, 0x45f
jmp 0x100040c95
mov ebx, 0x45e
jmp 0x100040c95
mov ebx, 0x45d
jmp 0x100040c95
mov ebx, 0x45c
jmp 0x100040c95
mov ebx, 0x44f
jmp 0x100040c95
mov ebx, 0x44e
jmp 0x100040c95
mov ebx, 0x44d
jmp 0x100040c95
mov ebx, 0x44c
cmp esi, dword [r13 + 0x38]
jae 0x100040cfc
mov rax, qword [r13 + 0x48]
mov rcx, qword [rax + r14]
mov edi, dword [rdi + rcx]
lea rcx, [rsp + 0x40]
mov edx, edi
call fcn.100007ba0
mov rcx, qword [0x1000a1938]
movzx ebx, bx
mov r8, qword [rax + 0x10]
mov edx, ebx
call qword [sym.imp.USER32.dll_SetDlgItemTextW]
mov rcx, qword [rsp + 0x50]
call sub.msvcrt.dll_free
mov rcx, qword [0x1000a1938]
mov edx, ebx
call qword [sym.imp.USER32.dll_GetDlgItem]
mov edx, 5
mov rcx, rax
call qword [sym.imp.USER32.dll_ShowWindow]
add r15d, edi
mov rdi, qword [rsp + 0xe8]
jmp 0x100040d17
mov rcx, qword [0x1000a1938]
movzx edx, bx
call qword [sym.imp.USER32.dll_GetDlgItem]
xor edx, edx
mov rcx, rax
call qword [sym.imp.USER32.dll_ShowWindow]
mov ebx, 1
add r14, 8
add esi, ebx
cmp esi, ebp
jb 0x100040918
lea rcx, [rsp + 0x58]
mov edx, r15d
call fcn.100007ba0
mov r13d, dword [rsp + 0xe0]
mov rcx, qword [0x1000a1938]
mov r8, qword [rax + 0x10]
movzx edx, r13w
call qword [sym.imp.USER32.dll_SetDlgItemTextW]
mov rcx, qword [rsp + 0x68]
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0xf8]
mov edx, 0x472
add rdi, 4
add r12d, ebx
lea r8d, [rdx - 2]
lea r9d, [rdx - 3]
mov qword [rsp + 0xe8], rdi
cmp r12d, 4
jb 0x100040895
mov rcx, qword [0x1000a1938]
lea edx, [rbx + 4]
call qword [sym.imp.USER32.dll_ShowWindow]
mov rcx, qword [0x1000a1938]
mov r8d, ebp
mov edx, 0x46d
call fcn.100040294
mov rcx, qword [0x1000a1938]
mov r8d, ebp
mov edx, 0x46f
call fcn.100040294
mov rcx, qword [0x1000a1938]
mov r8d, ebp
mov edx, 0x470
call fcn.100040294
mov rcx, qword [0x1000a1938]
mov r8d, ebp
mov edx, 0x471
call fcn.100040294
mov rcx, qword [0x1000a1938]
mov r8d, ebp
mov edx, 0x472
call fcn.100040294
mov rax, qword [rsp + 0xf0]
sub ebp, dword [rax + 0x38]
je 0x10004117f
mov rcx, qword [0x1000a1938]
and dword [rsp + 0x44], 0
and dword [rsp + 0x40], 0
lea eax, [rbp + rbp*4]
lea rdx, [rsp + 0x40]
add eax, eax
mov dword [rsp + 0x4c], eax
mov dword [rsp + 0x48], eax
call qword [sym.imp.USER32.dll_MapDialogRect]
mov rcx, qword [0x1000a1938]
mov ebx, dword [rsp + 0x4c]
lea rdx, [rsp + 0x58]
call qword [sym.imp.USER32.dll_GetClientRect]
mov r11d, dword [rsp + 0x64]
mov eax, dword [rsp + 0x60]
sub eax, dword [rsp + 0x58]
mov rcx, qword [0x1000a1938]
sub r11d, ebx
mov dword [rsp + 0x64], r11d
sub r11d, dword [rsp + 0x5c]
mov dword [rsp + 0x30], 0x216
mov dword [rsp + 0x28], r11d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x20], eax
call qword [sym.imp.USER32.dll_SetWindowPos]
jmp 0x10004117f
mov edx, 0x78
call qword [sym.imp.USER32.dll_CreateDialogParamW]
mov rcx, qword [0x1000a1940]
lea rdx, [rsp + 0x80]
mov qword [0x1000a1938], rax
call qword [sym.imp.USER32.dll_GetClientRect]
mov rcx, qword [0x1000a1938]
lea rdx, [rsp + 0x70]
call qword [sym.imp.USER32.dll_GetClientRect]
mov r8d, dword [rsp + 0x88]
mov r9d, dword [rsp + 0x74]
sub r8d, dword [rsp + 0x78]
mov rcx, qword [0x1000a1938]
mov r15d, 5
mov dword [rsp + 0x30], r15d
xor edx, edx
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r14d
call qword [sym.imp.USER32.dll_SetWindowPos]
mov r11, qword [0x10009e150]
mov rsi, qword [r11 + 0x90]
mov rcx, qword [0x1000a1938]
lea r8, str.45573UI_STATSGames_played:__1_d____Shows_the_number_of_games_played_on_the_stats_dialog.
mov r9d, dword [rsi + 0x50]
mov edx, 0x3fe
mov byte [rsp + 0x20], 1
call fcn.100052afc
mov r9d, dword [rsi + 0x54]
mov rcx, qword [0x1000a1938]
lea r8, str.45574UI_STATSGames_won:__1_d____Used_to_display_the_number_of_games_won_on_the_stats_dialog.
mov edx, 0x3ff
mov byte [rsp + 0x20], 1
call fcn.100052afc
mov r9d, dword [rsi + 0x58]
mov rcx, qword [0x1000a1938]
lea r8, str.45575UI_STATSLongest_winning_streak:__1_d_
mov edx, 0x401
mov byte [rsp + 0x20], 1
call fcn.100052afc
mov r9d, dword [rsi + 0x5c]
mov rcx, qword [0x1000a1938]
lea r8, str.45576UI_STATSLongest_losing_streak:__1_d_
mov edx, 0x402
mov byte [rsp + 0x20], 1
call fcn.100052afc
mov edx, dword [rsi + 0x60]
lea rcx, str.47351UI_STATSCurrent_Streak:__1_d____current_streak_count
cmp byte [rsi + 0x64], r14b
jne 0x100040fa9
neg edx
call fcn.1000025b4
mov rcx, qword [0x1000a1938]
mov edx, 0x403
mov r8, rax
mov rbx, rax
call qword [sym.imp.USER32.dll_SetDlgItemTextW]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
cmp dword [rsi + 0x50], r14d
jne 0x100040fda
mov edx, r14d
jmp 0x100041008
mov eax, dword [rsi + 0x54]
pxor xmm1, xmm1
pxor xmm0, xmm0
cvtsi2ss xmm1, rax
mov eax, dword [rsi + 0x50]
cvtsi2ss xmm0, rax
divss xmm1, xmm0
unpcklps xmm1, xmm1
cvtps2pd xmm1, xmm1
mulsd xmm1, qword [0x10007e2c0]
cvttsd2si edx, xmm1
lea rcx, str.43159UI_STATSWin_Percentage:__1_d______Win_percentage__e.g._50__
call fcn.1000025b4
mov rcx, qword [0x1000a1938]
mov edx, 0x400
mov r8, rax
mov rbx, rax
call qword [sym.imp.USER32.dll_SetDlgItemTextW]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov ebp, r14d
lea r14, [rsi + 0x10]
lea r13, [rsi + 0x28]
mov ecx, ebp
test ebp, ebp
je 0x100041086
sub ecx, 1
je 0x10004107c
sub ecx, 1
je 0x100041072
sub ecx, 1
je 0x100041068
cmp ecx, 1
jne 0x10004110f
mov ebx, 0x3f5
lea edi, [rbx + 5]
jmp 0x10004108e
mov ebx, 0x3f4
lea edi, [rbx + 5]
jmp 0x10004108e
mov ebx, 0x3f3
lea edi, [rbx + 5]
jmp 0x10004108e
mov ebx, 0x3f2
lea edi, [rbx + 5]
jmp 0x10004108e
mov ebx, 0x3f1
lea edi, [rbx + 5]
mov edx, dword [r14]
test edx, edx
jne 0x1000410cc
cmp qword [r13], 0
jne 0x1000410cc
mov rcx, qword [0x1000a1938]
lea r8, [0x10007ced0]
movzx edx, bx
call qword [sym.imp.USER32.dll_SetDlgItemTextW]
mov rcx, qword [0x1000a1938]
lea r8, [0x10007ced0]
movzx edx, di
call qword [sym.imp.USER32.dll_SetDlgItemTextW]
jmp 0x10004110f
lea rcx, [rsp + 0x58]
call fcn.100007ba0
mov rcx, qword [0x1000a1938]
movzx edx, bx
mov r8, qword [rax + 0x10]
call qword [sym.imp.USER32.dll_SetDlgItemTextW]
mov rcx, qword [rsp + 0x68]
call sub.msvcrt.dll_free
mov r9, qword [r13]
mov rcx, qword [0x1000a1938]
movzx edx, di
xor r8d, r8d
mov byte [rsp + 0x20], 0
call fcn.100052990
inc ebp
add r14, 4
add r13, 8
cmp ebp, r15d
jl 0x100041040
mov rcx, qword [0x1000a1938]
mov edx, r15d
call qword [sym.imp.USER32.dll_ShowWindow]
cmp dword [rsi + 0x50], 0
seta bl
test bl, bl
jne 0x100041173
call qword [sym.imp.USER32.dll_GetFocus]
cmp rax, r12
jne 0x100041173
mov rcx, qword [0x1000a1940]
mov edx, 0x3fd
call qword [sym.imp.USER32.dll_GetDlgItem]
mov rcx, qword [0x1000a1940]
mov edx, 0x28
lea r9d, [rdx - 0x27]
mov r8, rax
call qword [sym.imp.USER32.dll_PostMessageW]
movzx edx, bl
mov rcx, r12
call qword [sym.imp.USER32.dll_EnableWindow]
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret