Function at 0x100580e0
Capabilities:
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100b3e71
mov eax, dword fs:[0]
push eax
sub esp, 0x16c
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x114], edi
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x170], eax
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x148], 0
mov dword [ebp - 4], 0
test byte [0x100f0860], 1
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
je 0x1005815c
cmp byte [ebp + 8], 0
je 0x10059246
mov ecx, dword [0x100f0880]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
lea eax, [eax + eax*4]
shl eax, 2
sub ecx, eax
jne 0x10058278
mov eax, dword [0x100f0870]
xorps xmm0, xmm0
movdqu xmmword [ebp - 0x48], xmm0
movdqu xmmword [ebp - 0x24], xmm0
test eax, eax
jne 0x100581ad
mov eax, dword [edi + 0x6f0]
push 2
push dword [eax + 8]
call dword [sym.imp.USER32.dll_GetAncestor]
mov dword [0x100f0870], eax
mov esi, dword [sym.imp.USER32.dll_GetWindowRect]
lea ecx, [ebp - 0x24]
push ecx
push eax
call esi
mov eax, dword [edi + 0x6f0]
lea ecx, [ebp - 0x48]
push ecx
push dword [eax + 8]
call esi
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
call esi
push 1
mov edi, eax
call esi
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x24]
sub ecx, edx
mov esi, dword [ebp - 0x18]
cmp ecx, edi
jge 0x100581f1
mov ecx, esi
sub ecx, dword [ebp - 0x20]
cmp ecx, eax
jl 0x10058263
mov eax, dword [ebp - 0x48]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jg 0x1005820f
mov eax, dword [ebp - 0x3c]
sub eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jle 0x10058263
mov edi, dword [ebp - 0x114]
mov eax, dword [edi + 0x6f0]
push dword [eax + 8]
call dword [sym.imp.USER32.dll_GetParent]
cmp dword [0x100f0870], eax
jne 0x10058269
call dword [sym.imp.USER32.dll_GetForegroundWindow]
cmp eax, dword [0x100f0870]
je 0x10058254
mov ecx, dword [edi + 0x6f0]
cmp eax, dword [ecx + 8]
je 0x10058254
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
xor al, al
mov byte [0x100f084e], al
jmp 0x1005827d
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
mov al, 1
mov byte [0x100f084e], al
jmp 0x1005827d
mov edi, dword [ebp - 0x114]
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
xor al, al
mov byte [0x100f084e], al
jmp 0x1005827d
mov al, byte [0x100f084e]
inc dword [0x100f0880]
test al, al
je 0x100582c3
push 2
call esi
shr eax, 0xf
and al, 1
push 4
mov byte [edi + 0xc6], al
call esi
shr eax, 0xf
and al, 1
push 5
mov byte [edi + 0xc8], al
call esi
shr eax, 0xf
and al, 1
push 6
mov byte [edi + 0xc9], al
call esi
shr eax, 0xf
and al, 1
mov byte [edi + 0xca], al
cmp dword [edi + 0x6c8], 0
je 0x10058357
mov eax, dword [edi + 0x6c4]
mov eax, dword [eax]
movq xmm0, qword [eax + 8]
mov eax, dword [eax + 0x10]
movq qword [ebp - 0x30], xmm0
movzx ecx, byte [ebp - 0x30]
mov dword [ebp - 0x28], eax
cmp byte [ecx + edi + 0xc4], 0
jne 0x10058300
mov eax, dword [ebp + 0xc]
mov dword [edi + ecx*4 + 0x1c4], eax
mov eax, dword [ebp + 8]
mov byte [ecx + edi + 0xc4], 1
test al, al
jne 0x10058357
mov eax, dword [edi + 0x6c4]
mov eax, dword [eax]
dec dword [eax + 0x10]
mov eax, dword [edi + 0x6c4]
mov eax, dword [eax]
cmp dword [eax + 0x10], 0
jne 0x10058357
mov byte [ecx + edi + 0xc4], 0
mov eax, dword [edi + 0x6c4]
mov edx, dword [eax]
push edx
mov ecx, dword [edx + 4]
mov eax, dword [edx]
mov dword [ecx], eax
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
dec dword [edi + 0x6c8]
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov eax, dword [edi + 0x7c]
mov edi, dword [eax]
cmp edi, eax
je 0x10058820
mov esi, dword [ebp - 0x114]
lea ebx, [ebx]
movzx eax, word [edi + 0x10]
mov ecx, eax
movzx eax, al
shr ecx, 8
cmp byte [eax + esi + 0xc4], 1
jne 0x1005847b
test cl, cl
je 0x1005839f
movzx eax, cl
cmp byte [eax + esi + 0xc4], 1
jne 0x1005847b
cmp byte [edi + 0x14], 0
mov edx, dword [ebp + 0xc]
jne 0x1005843a
cmp byte [edi + 0x70], 0
lea eax, [edx - 1]
mov byte [edi + 0x14], 1
mov dword [edi + 0x18], edx
mov dword [edi + 0x1c], eax
mov dword [edi + 0x20], 0xffffffff
jne 0x1005843a
mov esi, dword [edi + 0x84]
cmp esi, dword [edi + 0x88]
je 0x10058434
mov eax, dword [esi + 8]
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x30], eax
mov eax, dword [esi + 4]
add eax, edx
mov dword [ebp - 0x28], eax
mov al, byte [esi]
mov byte [ebp - 0x2c], al
mov eax, dword [edi + 0x24]
push ecx
mov dword [ebp - 0x110], eax
push dword [eax + 4]
push eax
call fcn.100354b0
mov edx, eax
mov ecx, 0xccccccb
mov eax, dword [edi + 0x28]
sub ecx, eax
cmp ecx, 1
jb 0x1005895f
lea ecx, [eax + 1]
add esi, 0xc
mov eax, dword [ebp - 0x110]
mov dword [edi + 0x28], ecx
mov dword [eax + 4], edx
mov eax, dword [edx + 4]
mov dword [eax], edx
mov edx, dword [ebp + 0xc]
cmp esi, dword [edi + 0x88]
jne 0x100583d4
mov esi, dword [ebp - 0x114]
cmp dword [edi + 0x28], 0
je 0x10058528
mov esi, dword [edi + 0x24]
mov esi, dword [esi]
mov dword [ebp - 0x128], esi
cmp esi, dword [edi + 0x24]
je 0x100587d1
cmp edx, dword [esi + 0x10]
jae 0x1005848a
xor eax, eax
mov ecx, edx
add ecx, 0x2710
adc eax, eax
test eax, eax
jb 0x1005848a
ja 0x10058474
cmp ecx, dword [esi + 0x10]
jb 0x1005848a
mov esi, dword [esi]
jmp 0x10058514
cmp byte [edi + 0x14], 0
mov edx, dword [ebp + 0xc]
je 0x1005843a
mov byte [edi + 0x14], 0
jmp 0x1005843a
mov al, byte [esi + 8]
mov dl, byte [esi + 0xc]
mov cl, al
mov byte [ebp - 0x119], al
call fcn.10057fe0
cmp byte [esi + 0xc], 0
mov dl, byte [ebp - 0x119]
je 0x100584dc
mov eax, dword [ebp - 0x114]
movzx ecx, dl
mov dword [ebp - 0x110], ecx
cmp byte [eax + ecx + 0xc4], 0
jne 0x100584d8
mov esi, dword [ebp - 0x110]
mov ecx, dword [ebp + 0xc]
mov dword [eax + esi*4 + 0x1c4], ecx
mov esi, dword [ebp - 0x128]
cmp byte [esi + 0xc], 0
movzx eax, dl
setne cl
mov edx, dword [ebp - 0x114]
mov byte [eax + edx + 0xc4], cl
mov eax, dword [ebp - 0x128]
mov esi, dword [esi]
push eax
mov ecx, dword [eax + 4]
mov dword [ecx], esi
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
dec dword [edi + 0x28]
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
mov edx, dword [ebp + 0xc]
add esp, 4
mov dword [ebp - 0x128], esi
cmp esi, dword [edi + 0x24]
jne 0x10058458
jmp 0x100587d1
cmp byte [edi + 0x14], 0
je 0x100587d7
cmp byte [edi + 0x70], 0
je 0x100587d7
mov esi, dword [edi + 0x84]
xor cl, cl
mov byte [ebp - 0x119], cl
cmp esi, dword [edi + 0x88]
je 0x10058665
jmp 0x1005855b
mov edx, dword [ebp + 0xc]
mov al, byte [esi]
test al, al
je 0x1005864e
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x18]
add eax, ecx
cmp eax, dword [edi + 0x1c]
jbe 0x10058648
cmp eax, edx
ja 0x10058648
mov eax, dword [esi + 8]
lea ecx, [ebp - 0x160]
mov dword [ebp - 0x160], eax
mov al, byte [esi]
mov byte [ebp - 0x15c], al
mov eax, dword [edi + 0x24]
push ecx
mov dword [ebp - 0x158], edx
mov dword [ebp - 0x110], eax
push dword [eax + 4]
push eax
call fcn.100354b0
mov edx, eax
mov ecx, 0xccccccb
mov eax, dword [edi + 0x28]
sub ecx, eax
cmp ecx, 1
jb 0x1005895f
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x110]
mov dword [edi + 0x28], ecx
mov dword [eax + 4], edx
mov eax, dword [edx + 4]
mov dword [eax], edx
mov ecx, dword [esi + 4]
add esi, 0xc
mov eax, dword [esi + 8]
mov dword [ebp - 0x160], eax
mov eax, dword [esi + 4]
sub eax, ecx
lea ecx, [ebp - 0x160]
add eax, dword [ebp + 0xc]
mov dword [ebp - 0x158], eax
mov al, byte [esi]
mov byte [ebp - 0x15c], al
mov eax, dword [edi + 0x24]
push ecx
mov dword [ebp - 0x110], eax
push dword [eax + 4]
push eax
call fcn.100354b0
mov edx, eax
mov ecx, 0xccccccb
mov eax, dword [edi + 0x28]
sub ecx, eax
cmp ecx, 1
jb 0x1005895f
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x110]
mov dword [edi + 0x28], ecx
mov cl, 1
mov byte [ebp - 0x119], cl
mov dword [eax + 4], edx
mov eax, dword [edx + 4]
mov dword [eax], edx
jmp 0x1005864e
mov cl, byte [ebp - 0x119]
add esi, 0xc
cmp esi, dword [edi + 0x88]
jne 0x10058558
test cl, cl
jne 0x100587c5
mov eax, dword [edi + 0x90]
cmp eax, dword [edi + 0x94]
je 0x100587d1
mov eax, dword [eax + 4]
add eax, dword [edi + 0x18]
mov esi, dword [ebp + 0xc]
cmp eax, esi
ja 0x100587d1
cmp dword [edi + 0x20], 0xffffffff
jne 0x10058698
xor eax, eax
mov dword [ebp - 0x118], eax
jmp 0x10058705
mov ecx, dword [edi + 0x94]
mov eax, 0x2aaaaaab
sub ecx, dword [edi + 0x90]
imul ecx
mov ecx, dword [edi + 0x20]
sar edx, 1
mov eax, edx
shr eax, 0x1f
dec eax
add eax, edx
cmp ecx, eax
jne 0x100586d4
mov eax, esi
sub eax, dword [edi + 0x1c]
cmp eax, 0x40
jb 0x100587d1
xor eax, eax
mov dword [ebp - 0x118], eax
jmp 0x10058705
mov eax, dword [edi + 0x90]
lea ecx, [ecx + ecx*2]
mov edx, dword [eax + ecx*4 + 0x10]
sub edx, dword [eax + ecx*4 + 4]
mov eax, esi
sub eax, dword [edi + 0x1c]
cmp eax, edx
jb 0x100587d1
mov eax, dword [edi + 0x20]
inc eax
mov dword [ebp - 0x118], eax
cmp eax, 0xffffffff
je 0x100587d1
mov esi, dword [ebp - 0x114]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x90]
cmp dword [esi + 0x54], 0
movq xmm0, qword [eax + ecx*4]
mov eax, dword [eax + ecx*4 + 8]
movq qword [ebp - 0x44], xmm0
mov dword [ebp - 0x110], eax
je 0x10058744
push eax
mov ecx, esi
call fcn.1005ee80
test al, al
jne 0x100587d7
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x144], eax
lea ecx, [edi + 0x24]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x13c], eax
mov al, byte [ebp - 0x44]
mov byte [ebp - 0x140], al
lea eax, [ebp - 0x144]
push eax
call fcn.10031540
mov eax, dword [ebp - 0x118]
inc eax
mov dword [ebp - 0x118], eax
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x90]
movq xmm0, qword [eax + ecx*4]
mov eax, dword [eax + ecx*4 + 8]
lea ecx, [edi + 0x24]
mov dword [ebp - 0x144], eax
movq qword [ebp - 0x20], xmm0
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x40]
add eax, dword [ebp + 0xc]
mov dword [ebp - 0x13c], eax
mov al, byte [ebp - 0x20]
mov byte [ebp - 0x140], al
lea eax, [ebp - 0x144]
push eax
call fcn.10031540
mov eax, dword [ebp - 0x118]
mov dword [edi + 0x20], eax
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x10]
mov dword [edi + 0x1c], eax
mov esi, dword [ebp - 0x114]
cmp byte [edi + 0xd], 0
jne 0x10058817
mov eax, dword [edi + 8]
cmp byte [eax + 0xd], 0
jne 0x100587fc
mov edi, eax
mov eax, dword [edi]
cmp byte [eax + 0xd], 0
jne 0x10058817
mov edi, eax
mov eax, dword [edi]
cmp byte [eax + 0xd], 0
je 0x100587f0
jmp 0x10058817
mov eax, dword [edi + 4]
cmp byte [eax + 0xd], 0
jne 0x10058815
cmp edi, dword [eax + 8]
jne 0x10058815
mov edi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x10058805
mov edi, eax
cmp edi, dword [esi + 0x7c]
jne 0x10058370
mov edi, dword [ebp - 0x114]
mov eax, dword [edi + 0x84]
mov esi, dword [eax]
cmp esi, eax
je 0x10058bf3
cmp dword [esi + 0x1c], 0
jne 0x10058a79
movzx eax, word [esi + 0x10]
mov ecx, eax
movzx eax, al
shr ecx, 8
cmp byte [eax + edi + 0xc4], 1
jne 0x1005896a
test cl, cl
je 0x1005886f
movzx eax, cl
cmp byte [eax + edi + 0xc4], 1
jne 0x1005896a
cmp byte [esi + 0x14], 0
jne 0x10058a6f
mov byte [esi + 0x14], 1
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x94]
je 0x10058a69
lea ecx, [edi + 8]
mov dword [ebp - 0x10c], ecx
jmp 0x100588a0
xor eax, eax
mov dword [ebp - 0x68], 7
mov dword [ebp - 0x6c], 0
mov word [ebp - 0x7c], ax
mov byte [ebp - 4], 1
mov eax, dword [edi]
mov dword [ebp - 0x84], eax
mov eax, dword [ecx - 4]
add eax, dword [ebp + 0xc]
mov dword [ebp - 0x80], eax
lea eax, [ebp - 0x7c]
cmp eax, ecx
je 0x100588e2
push 0xffffffffffffffff
push 0
push ecx
mov ecx, eax
call fcn.10005a70
mov ecx, dword [ebp - 0x10c]
mov al, byte [ecx + 0x18]
lea ecx, [ebp - 0x84]
mov byte [ebp - 0x64], al
mov eax, dword [esi + 0x18]
push ecx
mov dword [ebp - 0x110], eax
push dword [eax + 4]
push eax
call fcn.1006bc20
mov edx, eax
mov ecx, 0x5d1745c
mov eax, dword [esi + 0x1c]
sub ecx, eax
cmp ecx, 1
jb 0x1005895f
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x110]
mov dword [esi + 0x1c], ecx
mov dword [eax + 4], edx
mov eax, dword [edx + 4]
mov byte [ebp - 4], 0
mov dword [eax], edx
cmp dword [ebp - 0x68], 8
jb 0x1005893c
push dword [ebp - 0x7c]
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov ecx, dword [ebp - 0x10c]
add edi, 0x24
add ecx, 0x24
mov dword [ebp - 0x10c], ecx
cmp edi, dword [esi + 0x94]
jne 0x100588a0
jmp 0x10058a69
push str.list_T__too_long
call dword [sym.imp.MSVCP120.dll_void___cdecl_std::_Xlength_error_char_const__]
cmp byte [esi + 0x14], 0
je 0x10058a6f
mov byte [esi + 0x14], 0
mov edi, dword [esi + 0x9c]
cmp edi, dword [esi + 0xa0]
je 0x10058a69
lea ecx, [edi + 8]
mov dword [ebp - 0x10c], ecx
xor eax, eax
mov dword [ebp - 0x8c], 7
mov dword [ebp - 0x90], 0
mov word [ebp - 0xa0], ax
mov byte [ebp - 4], 2
mov eax, dword [edi]
mov dword [ebp - 0xa8], eax
mov eax, dword [ecx - 4]
add eax, dword [ebp + 0xc]
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0xa0]
cmp eax, ecx
je 0x100589e4
push 0xffffffffffffffff
push 0
push ecx
mov ecx, eax
call fcn.10005a70
mov ecx, dword [ebp - 0x10c]
mov al, byte [ecx + 0x18]
lea ecx, [ebp - 0xa8]
mov byte [ebp - 0x88], al
mov eax, dword [esi + 0x18]
push ecx
mov dword [ebp - 0x110], eax
push dword [eax + 4]
push eax
call fcn.1006bc20
mov edx, eax
mov ecx, 0x5d1745c
mov eax, dword [esi + 0x1c]
sub ecx, eax
cmp ecx, 1
jb 0x1005895f
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x110]
mov dword [esi + 0x1c], ecx
mov dword [eax + 4], edx
mov eax, dword [edx + 4]
mov byte [ebp - 4], 0
mov dword [eax], edx
cmp dword [ebp - 0x8c], 8
jb 0x10058a4b
push dword [ebp - 0xa0]
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov ecx, dword [ebp - 0x10c]
add edi, 0x24
add ecx, 0x24
mov dword [ebp - 0x10c], ecx
cmp edi, dword [esi + 0xa0]
jne 0x10058993
mov edi, dword [ebp - 0x114]
cmp dword [esi + 0x1c], 0
je 0x10058ba7
mov eax, dword [esi + 0x18]
mov ecx, dword [eax]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ecx + 0xc]
jae 0x10058aa5
mov edx, eax
xor eax, eax
add edx, 0x2710
adc eax, eax
test eax, eax
ja 0x10058ba7
jb 0x10058aa5
cmp edx, dword [ecx + 0xc]
jae 0x10058ba7
mov eax, dword [ecx + 8]
cmp eax, 1
jne 0x10058aca
mov eax, dword [edi + 0x6f0]
push 0
push 0
push 0x412
push dword [eax + 8]
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x10058b54
cmp eax, 2
jne 0x10058b21
mov eax, dword [edi + 0x6f0]
add eax, 0x710
mov dword [ebp - 0x110], eax
cmp dword [eax + 0x124], 0
je 0x10058b54
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [ebp - 0x110]
add eax, 0x7d
cmp byte [ecx + 0x10b], 0
mov dword [ecx + 0x1a4], eax
je 0x10058b54
mov eax, dword [ecx + 0x260]
push 0
push 0
push 0x413
push dword [eax + 8]
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x10058b54
cmp eax, 3
jne 0x10058b3f
add ecx, 0x10
cmp dword [ecx + 0x14], 8
jb 0x10058b31
mov ecx, dword [ecx]
push ecx
mov ecx, dword [edi + 0x6f0]
call fcn.1001dc60
jmp 0x10058b54
cmp eax, 4
jne 0x10058b54
movzx eax, byte [ecx + 0x28]
mov ecx, dword [edi + 0x6f0]
push eax
call fcn.10055e90
mov eax, dword [esi + 0x18]
mov edx, dword [eax]
mov dword [ebp - 0x110], edx
mov ecx, dword [edx + 4]
mov eax, dword [edx]
mov dword [ecx], eax
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
dec dword [esi + 0x1c]
cmp dword [edx + 0x24], 8
jb 0x10058b89
push dword [edx + 0x10]
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
mov edx, dword [ebp - 0x110]
add esp, 4
xor eax, eax
mov dword [edx + 0x24], 7
mov dword [edx + 0x20], 0
push edx
mov word [edx + 0x10], ax
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
add esp, 4
cmp byte [esi + 0xd], 0
jne 0x10058be7
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
jne 0x10058bcc
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
jne 0x10058be7
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
je 0x10058bc0
jmp 0x10058be7
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x10058be5
cmp esi, dword [eax + 8]
jne 0x10058be5
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x10058bd5
mov esi, eax
cmp esi, dword [edi + 0x84]
jne 0x10058836
cmp dword [edi + 0x34], 0
je 0x100590b5
mov ecx, dword [0x100f0860]
mov eax, 0xcccccccd
mul ecx
shr edx, 4
lea eax, [edx + edx*4]
shl eax, 2
sub ecx, eax
jne 0x100590b5
mov ecx, dword [edi + 0x6f0]
call fcn.1001e500
test al, al
jne 0x10058c55
mov ecx, dword [edi + 0x6f0]
cmp dword [ecx + 0xeec], 0x12
jne 0x100590b5
add ecx, 0xedc
mov edx, str.com.mobile.legends
call fcn.10012400
test al, al
je 0x100590b5
mov eax, dword [edi + 0x6f0]
mov ecx, dword [eax + 0xeb0]
cmp ecx, 0x5a
je 0x10058c7c
cmp ecx, 0x10e
je 0x10058c7c
mov ecx, dword [eax + 0xf24]
mov eax, dword [eax + 0xf28]
jmp 0x10058c88
mov ecx, dword [eax + 0xf28]
mov eax, dword [eax + 0xf24]
movd xmm2, eax
movd xmm3, ecx
cvtdq2pd xmm2, xmm2
mov dword [ebp - 0x118], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x24], 0
cvtdq2pd xmm3, xmm3
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x120], 0
divsd xmm3, xmm2
movapd xmm1, xmm3
movsd qword [ebp - 0x144], xmm3
subsd xmm1, qword [0x100d1018]
mulsd xmm1, qword [0x100d1120]
mulsd xmm1, qword [0x100d0f30]
addsd xmm1, qword [0x100d1110]
mulsd xmm1, xmm2
divsd xmm1, qword [0x100d1120]
cvttsd2si ecx, xmm1
mov dword [ebp - 0x130], ecx
imul ecx, eax, 0x1dc
mov eax, 0x91a2b3c5
imul ecx
add edx, ecx
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x110], eax
mov eax, dword [edi + 0x30]
mov edi, eax
mov dword [ebp - 0x124], eax
mov dword [ebp - 0x10c], edi
mov esi, dword [eax]
mov dword [ebp - 0x12c], esi
cmp esi, eax
je 0x10058e8a
mov eax, dword [ebp - 0x118]
movsd xmm4, qword [0x100d1020]
cvttsd2si ecx, xmm1
sub eax, ecx
mov dword [ebp - 0x10c], eax
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x15c], eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x158], eax
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x114]
mov ecx, dword [eax + 0x6f0]
call fcn.1001ffe0
mov eax, dword [ebp - 0x10c]
cmp dword [ebp - 0x15c], eax
jle 0x10058e54
mov ecx, dword [ebp - 0x134]
mov eax, ecx
sub eax, dword [ebp - 0x110]
mov edx, dword [ebp - 0x158]
cmp edx, eax
jle 0x10058e54
inc dword [ebp - 0x120]
comisd xmm3, xmm4
mov dword [esi + 0x50], 2
jbe 0x10058ddb
movsd xmm2, qword [0x100d1048]
jmp 0x10058de3
movsd xmm2, qword [0x100d1030]
mov eax, dword [ebp - 0x118]
sub eax, dword [ebp - 0x15c]
movd xmm1, eax
mov eax, ecx
sub eax, edx
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
comisd xmm1, xmm2
jbe 0x10058e1a
mov dword [ebp - 0x124], esi
mov dword [esi + 0x50], 1
comisd xmm3, xmm4
jbe 0x10058e2a
movsd xmm0, qword [0x100d0fd0]
jmp 0x10058e32
movsd xmm0, qword [0x100d0f88]
comisd xmm0, xmm1
jbe 0x10058e54
mov eax, dword [ebp - 0x114]
cmp edi, dword [eax + 0x30]
je 0x10058e4b
mov eax, dword [esi + 0x20]
cmp eax, dword [edi + 0x20]
jle 0x10058e4d
mov edi, esi
mov dword [esi + 0x50], 3
lea ecx, [ebp - 0x12c]
call fcn.1000a810
mov eax, dword [ebp - 0x114]
mov esi, dword [ebp - 0x12c]
movsd xmm3, qword [ebp - 0x144]
movsd xmm4, qword [0x100d1020]
cmp esi, dword [eax + 0x30]
jne 0x10058d62
mov dword [ebp - 0x10c], edi
xor ecx, ecx
mov esi, dword [ebp - 0x114]
cmp dword [ebp - 0x120], 4
mov eax, 0x91a2b3c5
setl cl
lea ecx, [ecx*8 + 0x1c]
imul ecx, dword [ebp - 0x134]
imul ecx
add edx, ecx
sar edx, 9
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [ebp - 0x128], ecx
mov ecx, dword [esi + 0x6f0]
cmp dword [ecx + 0xeec], 0x12
jne 0x10058f09
add ecx, 0xedc
mov edx, str.com.mobile.legends
call fcn.10012400
test al, al
je 0x10058f09
mov eax, dword [ebp - 0x128]
lea ecx, [eax + eax*2]
mov eax, 0x38e38e39
shl ecx, 4
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x124]
cmp eax, dword [esi + 0x30]
je 0x10058f20
mov ecx, dword [eax + 0x24]
sub ecx, dword [ebp - 0x128]
mov dword [eax + 0x1c], ecx
cmp edi, dword [esi + 0x30]
je 0x10058fb6
mov ecx, dword [esi + 0x6f0]
call fcn.1001e500
test al, al
jne 0x10058fb6
mov eax, dword [edi + 0x20]
mov ecx, dword [esi + 0x6f0]
mov dword [ebp - 0x15c], eax
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x158], eax
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.1001ffe0
mov eax, dword [ebp - 0x118]
sub eax, dword [ebp - 0x15c]
movd xmm1, eax
mov eax, dword [ebp - 0x134]
sub eax, dword [ebp - 0x158]
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
subsd xmm1, qword [0x100d0f78]
andpd xmm1, xmmword [0x100d1510]
comisd xmm1, xmmword [0x100d0e70]
jbe 0x10058fb6
mov eax, dword [edi + 0x20]
sub eax, dword [ebp - 0x128]
mov dword [edi + 0x18], eax
cmp dword [ebp - 0x120], 4
mov edi, esi
jne 0x100590b5
mov ecx, dword [edi + 0x6f0]
call fcn.1001e500
test al, al
jne 0x100590b5
mov eax, dword [edi + 0x30]
mov edi, eax
mov dword [ebp - 0x12c], eax
mov esi, dword [eax]
mov dword [ebp - 0x124], esi
cmp esi, eax
je 0x1005909f
mov eax, dword [ebp - 0x114]
mov ecx, dword [eax + 0x6f0]
mov eax, dword [ebp - 0x130]
sub dword [ebp - 0x118], eax
mov dword [ebp - 0x120], ecx
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x15c], eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x158], eax
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.1001ffe0
mov eax, dword [ebp - 0x118]
cmp dword [ebp - 0x15c], eax
jle 0x1005907a
mov eax, dword [ebp - 0x134]
sub eax, dword [ebp - 0x110]
cmp dword [ebp - 0x158], eax
jle 0x1005907a
cmp edi, dword [ebp - 0x12c]
jne 0x10059069
cmp esi, dword [ebp - 0x10c]
je 0x1005907a
mov edi, esi
jmp 0x1005907a
mov eax, dword [esi + 0x20]
cmp eax, dword [edi + 0x20]
jle 0x1005907a
cmp esi, dword [ebp - 0x10c]
cmovne edi, esi
lea ecx, [ebp - 0x124]
call fcn.1000a810
mov esi, dword [ebp - 0x124]
mov eax, dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x120]
cmp esi, eax
jne 0x10059011
cmp edi, eax
je 0x100590af
mov eax, dword [edi + 0x20]
sub eax, dword [ebp - 0x128]
mov dword [edi + 0x18], eax
mov edi, dword [ebp - 0x114]
cmp byte [ebp + 8], 0
jne 0x100591cd
mov ecx, dword [edi + 0x8c]
test ecx, ecx
je 0x10059147
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x100590d8
dec eax
mov dword [ecx + 0x20], eax
mov eax, dword [edi + 0x8c]
cmp dword [eax + 0x20], 0
jne 0x10059147
cmp dword [eax + 0x68], 0
jne 0x100590fa
push 0
lea eax, [edi + 0xc4]
mov ecx, edi
push eax
call fcn.1005b970
mov edx, dword [edi + 0x8c]
cmp dword [edx + 0x68], 0
je 0x10059147
mov eax, dword [edx + 0x64]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
add eax, 0xc
mov dword [edx + 0x20], ecx
lea ecx, [ebp - 0x150]
push eax
call fcn.10031b50
mov esi, dword [edi + 0x8c]
mov eax, dword [esi + 0x64]
mov edx, dword [eax]
push edx
mov ecx, dword [edx + 4]
mov eax, dword [edx]
mov dword [ecx], eax
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
dec dword [esi + 0x68]
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov ecx, dword [edi + 0xa0]
test ecx, ecx
je 0x100591cd
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x10059160
dec eax
mov dword [ecx + 0x14], eax
mov eax, dword [edi + 0xa0]
cmp dword [eax + 0x14], 0
jne 0x100591cd
cmp dword [eax + 0x44], 0
jne 0x10059180
lea eax, [edi + 0xc4]
mov ecx, edi
push eax
call fcn.1005d160
mov edx, dword [edi + 0xa0]
cmp dword [edx + 0x44], 0
je 0x100591cd
mov eax, dword [edx + 0x40]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
add eax, 0xc
mov dword [edx + 0x14], ecx
lea ecx, [ebp - 0x150]
push eax
call fcn.10031b50
mov esi, dword [edi + 0xa0]
mov eax, dword [esi + 0x40]
mov edx, dword [eax]
push edx
mov ecx, dword [edx + 4]
mov eax, dword [edx]
mov dword [ecx], eax
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
dec dword [esi + 0x44]
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
add esp, 4
lea eax, [edi + 0xc4]
mov ecx, edi
push eax
call fcn.1005da20
mov eax, dword [edi + 0xb8]
test eax, eax
je 0x10059246
cmp dword [eax + 0x58], 0
je 0x10059246
mov eax, dword [eax + 0x54]
mov ecx, dword [eax]
mov eax, dword [ebp + 0xc]
mov esi, dword [ecx + 8]
cmp eax, esi
jae 0x10059210
mov edx, eax
xor eax, eax
add edx, 0x2710
adc eax, eax
test eax, eax
ja 0x10059246
jb 0x10059210
cmp edx, esi
jae 0x10059246
lea eax, [ecx + 0xc]
push eax
lea ecx, [ebp - 0x150]
call fcn.10031b50
mov esi, dword [edi + 0xb8]
mov eax, dword [esi + 0x54]
mov edx, dword [eax]
push edx
mov ecx, dword [edx + 4]
mov eax, dword [edx]
mov dword [ecx], eax
mov ecx, dword [edx]
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
dec dword [esi + 0x58]
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
add esp, 4
lea eax, [edi + 0xc4]
mov ecx, edi
push eax
call fcn.1005e320
mov eax, dword [edi + 0x18]
mov esi, dword [eax]
mov dword [ebp - 0x10c], esi
cmp esi, eax
je 0x10059796
jmp 0x10059270
cmp dword [esi + 0x3c], 0
mov al, byte [esi + 0x10]
mov byte [ebp - 0x130], al
je 0x100593c5
mov eax, dword [esi + 0x38]
mov ecx, dword [eax]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ecx + 8]
jae 0x100592af
mov edx, eax
xor eax, eax
add edx, 0x2710
adc eax, eax
test eax, eax
ja 0x1005977c
jb 0x100592af
cmp edx, dword [ecx + 8]
jae 0x1005977c
mov eax, dword [esi + 0x28]
test eax, eax
jne 0x1005937f
movdqu xmm0, xmmword [ecx + 0xc]
mov edi, dword [edi + 0x6f0]
movdqu xmmword [ebp - 0x164], xmm0
movdqu xmmword [ebp - 0x34], xmm0
call dword [sym.imp.MSVCR120.dll_rand]
cdq
mov ecx, 3
idiv ecx
movd xmm1, dword [edi + 0x10]
mov eax, 1
sub eax, edx
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movd xmm0, dword [edi + 0xf24]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
movdqu xmm0, xmmword [ebp - 0x164]
cvttsd2si ecx, xmm1
psrldq xmm0, 4
movd eax, xmm0
add eax, ecx
mov dword [ebp - 0x30], eax
mov eax, dword [sym.imp.MSVCR120.dll_rand]
call eax
cdq
mov ecx, 3
idiv ecx
movd xmm1, dword [edi + 0x10]
lea ecx, [ebp - 0x150]
mov eax, 1
sub eax, edx
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movd xmm0, dword [edi + 0xf24]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
cvttsd2si eax, xmm1
add dword [ebp - 0x2c], eax
lea eax, [ebp - 0x34]
push eax
call fcn.10031b50
mov edi, dword [ebp - 0x114]
jmp 0x100593a2
push eax
lea eax, [ecx + 0xc]
mov ecx, dword [edi + 0x6f0]
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.10020260
push eax
lea ecx, [ebp - 0x150]
call fcn.10031b50
mov eax, dword [esi + 0x38]
mov edx, dword [eax]
mov ecx, dword [edx + 4]
mov eax, dword [edx]
mov dword [ecx], eax
mov ecx, dword [edx]
mov eax, dword [edx + 4]
push ecx
push edx
mov dword [ecx + 4], eax
dec dword [esi + 0x3c]
call fcn.100323e0
jmp 0x1005977c
lea ecx, [ebp - 0x10c]
call fcn.10031bb0
mov dword [ebp - 0x118], eax
cmp byte [eax + 4], 0
je 0x1005977c
push dword [ebp - 0x130]
mov ecx, edi
call fcn.1005ef00
test al, al
jne 0x1005977c
mov ecx, dword [ebp - 0x118]
mov edx, dword [ecx + 0x14]
test edx, edx
je 0x10059627
mov eax, dword [ecx + 8]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100d1500]
mov eax, dword [sym.imp.MSVCR120.dll_rand]
movsd qword [ebp - 0x144], xmm0
movd xmm0, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [0x100d10f8]
movsd qword [ebp - 0x15c], xmm0
call eax
mov ecx, dword [ebp - 0x118]
cdq
movsd xmm0, qword [ebp - 0x15c]
mov ecx, dword [ecx + 0x14]
lea ecx, [ecx*2 + 1]
idiv ecx
movd xmm1, edx
cvtdq2pd xmm1, xmm1
subsd xmm0, xmm1
movsd xmm1, qword [ebp - 0x144]
divsd xmm0, qword [0x100d10f8]
divsd xmm1, xmm0
movaps xmm0, xmm1
call fcn.100ae531
mov edx, dword [ebp - 0x118]
mov esi, dword [ebp + 0xc]
mov ecx, esi
sub ecx, dword [edx + 0x1c]
cmp ecx, eax
jb 0x1005977c
movzx eax, word [edx]
mov ecx, dword [edi + 0x6f0]
mov dword [ebp - 0x48], eax
mov eax, dword [edx + 0x20]
mov dword [ebp - 0x44], eax
mov eax, dword [edx + 0x24]
mov dword [ebp - 0x40], eax
mov eax, dword [edx + 0x18]
mov dword [ebp - 0x3c], 1
test eax, eax
jne 0x100594d1
lea eax, [ebp - 0x48]
push 2
push eax
lea eax, [ebp - 0xe8]
jmp 0x100594dc
push eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0xf8]
push eax
call fcn.10020260
push eax
lea ecx, [ebp - 0x150]
call fcn.10031b50
mov ecx, dword [ebp - 0x118]
mov eax, dword [ecx + 8]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100d1500]
movsd qword [ebp - 0x144], xmm0
movd xmm0, dword [ecx + 0x14]
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [0x100d10f8]
movsd qword [ebp - 0x15c], xmm0
call dword [sym.imp.MSVCR120.dll_rand]
mov ecx, dword [ebp - 0x118]
cdq
movsd xmm0, qword [ebp - 0x15c]
mov ecx, dword [ecx + 0x14]
lea ecx, [ecx*2 + 1]
idiv ecx
movd xmm1, edx
cvtdq2pd xmm1, xmm1
subsd xmm0, xmm1
movsd xmm1, qword [ebp - 0x144]
divsd xmm0, qword [0x100d10f8]
divsd xmm1, xmm0
movaps xmm0, xmm1
call fcn.100ae531
mov edx, eax
cmp edx, 0xc6
jb 0x10059586
mov eax, 0xaaaaaaab
mul edx
mov ecx, dword [ebp - 0x118]
mov eax, 8
shr edx, 1
cmp edx, 8
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x110], 8
cmovb edx, eax
movzx eax, word [ecx]
mov dword [ebp - 0x34], eax
mov eax, dword [ecx + 0x20]
mov dword [ebp - 0x30], eax
mov eax, dword [ecx + 0x24]
mov dword [ebp - 0x124], edx
mov dword [ebp - 0x2c], eax
cmp edx, 8
jb 0x10059602
mov edi, dword [ebp - 0x110]
add ecx, 0x28
mov dword [ebp - 0x12c], ecx
lea eax, [edi + esi]
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x38]
push eax
call fcn.10031360
mov ecx, dword [ebp - 0x12c]
add edi, 0x10
cmp edi, dword [ebp - 0x124]
jbe 0x100595d6
mov edi, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x118]
add dword [ebp - 0x38], 8
lea eax, [ebp - 0x38]
push eax
add ecx, 0x28
mov dword [ebp - 0x28], 0
call fcn.10031360
mov ecx, dword [ebp - 0x118]
mov dword [ecx + 0x1c], esi
jmp 0x1005977c
mov edx, dword [ecx + 0xc]
mov esi, dword [ebp + 0xc]
cmp esi, edx
jb 0x1005977c
lea eax, [ecx + 8]
mov dword [ebp - 0x110], eax
mov eax, esi
mov esi, dword [ebp - 0x110]
sub eax, edx
xor edx, edx
div dword [esi]
mov edx, dword [ecx + 0x10]
mov esi, dword [ebp + 0xc]
inc eax
mov dword [ebp - 0x12c], eax
cmp edx, eax
jae 0x10059779
sub eax, edx
mov dword [ebp - 0x124], eax
lea esp, [esp]
movzx eax, word [ecx]
mov dword [ebp - 0x24], eax
mov eax, dword [ecx + 0x20]
mov dword [ebp - 0x20], eax
mov eax, dword [ecx + 0x24]
mov dword [ebp - 0x1c], eax
mov eax, dword [ecx + 0x18]
mov ecx, dword [edi + 0x6f0]
mov dword [ebp - 0x18], 1
test eax, eax
jne 0x100596a4
lea eax, [ebp - 0x24]
push 2
push eax
lea eax, [ebp - 0xc8]
jmp 0x100596af
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0xd8]
push eax
call fcn.10020260
push eax
lea ecx, [ebp - 0x150]
call fcn.10031b50
mov eax, dword [ebp - 0x110]
mov eax, dword [eax]
cmp eax, 0x28
jae 0x10059724
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0x18], 0
mov eax, dword [ecx + 0x18]
mov ecx, dword [edi + 0x6f0]
test eax, eax
jne 0x10059708
push 2
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.10020260
push eax
lea ecx, [ebp - 0x150]
call fcn.10031b50
jmp 0x10059761
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.10020260
push eax
lea ecx, [ebp - 0x150]
call fcn.10031b50
jmp 0x10059761
shr eax, 1
mov ecx, 0x40
cmp eax, 0x40
mov dword [ebp - 0x28], 0
cmova eax, ecx
mov ecx, dword [ebp - 0x118]
add eax, esi
mov dword [ebp - 0x38], eax
movzx eax, word [ecx]
mov dword [ebp - 0x34], eax
mov eax, dword [ecx + 0x20]
mov dword [ebp - 0x30], eax
mov eax, dword [ecx + 0x24]
add ecx, 0x28
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x38]
push eax
call fcn.10031360
dec dword [ebp - 0x124]
mov ecx, dword [ebp - 0x118]
jne 0x10059670
mov eax, dword [ebp - 0x12c]
mov dword [ecx + 0x10], eax
lea ecx, [ebp - 0x10c]
call fcn.1000a810
mov esi, dword [ebp - 0x10c]
cmp esi, dword [edi + 0x18]
jne 0x10059270
test byte [0x100f0860], 1
je 0x100597aa
mov eax, dword [ebp + 8]
test al, al
je 0x1005a307
push 0
push 0
lea eax, [edi + 0xc4]
mov ecx, edi
push eax
call fcn.1005f8a0
lea esi, [edi + 0x30]
lea eax, [ebp - 0x120]
mov dword [ebp - 0x124], esi
push eax
mov ecx, esi
call fcn.100311a0
lea eax, [ebp - 0x110]
mov ecx, esi
push eax
call fcn.10030e40
push eax
lea ecx, [ebp - 0x120]
call fcn.10031bc0
test al, al
je 0x100598a0
mov edi, dword [ebp + 0xc]
jmp 0x10059800
lea ecx, [ebp - 0x120]
call fcn.10031bb0
lea esi, [eax + 0x44]
mov ecx, esi
call fcn.100311b0
test al, al
jne 0x10059861
mov ecx, esi
call fcn.10031350
mov dword [ebp - 0x130], eax
lea ecx, [edi + 1]
mov eax, dword [eax]
cmp ecx, eax
jae 0x10059845
xor ecx, ecx
mov edx, edi
add edx, 0x2710
adc ecx, ecx
test ecx, ecx
ja 0x10059861
jb 0x10059845
cmp edx, eax
jae 0x10059861
mov eax, dword [ebp - 0x130]
lea ecx, [ebp - 0x150]
add eax, 4
push eax
call fcn.10031b50
mov ecx, esi
call fcn.100311c0
push ecx
lea eax, [ebp - 0x13c]
push eax
lea ecx, [ebp - 0x120]
call fcn.10031c10
mov ecx, dword [ebp - 0x124]
lea eax, [ebp - 0x110]
push eax
call fcn.10030e40
push eax
lea ecx, [ebp - 0x120]
call fcn.10031bc0
test al, al
jne 0x10059800
mov edi, dword [ebp - 0x114]
cmp byte [ebp + 8], 0
jne 0x10059a82
lea eax, [edi + 0xc4]
mov ecx, edi
push eax
call fcn.100615a0
lea esi, [edi + 0x58]
lea eax, [ebp - 0x120]
mov dword [ebp - 0x124], esi
push eax
mov ecx, esi
call fcn.100311a0
lea eax, [ebp - 0x110]
mov ecx, esi
push eax
call fcn.10030e40
push eax
lea ecx, [ebp - 0x120]
call fcn.10031bc0
test al, al
je 0x10059994
mov edi, dword [ebp + 0xc]
lea ecx, [ebp - 0x120]
call fcn.10031bb0
lea esi, [eax + 0x58]
mov ecx, esi
call fcn.100311b0
test al, al
jne 0x10059955
mov ecx, esi
call fcn.10031350
mov dword [ebp - 0x130], eax
lea ecx, [edi + 1]
mov eax, dword [eax]
cmp ecx, eax
jae 0x10059939
xor ecx, ecx
mov edx, edi
add edx, 0x2710
adc ecx, ecx
test ecx, ecx
ja 0x10059955
jb 0x10059939
cmp edx, eax
jae 0x10059955
mov eax, dword [ebp - 0x130]
lea ecx, [ebp - 0x150]
add eax, 4
push eax
call fcn.10031b50
mov ecx, esi
call fcn.100311c0
push ecx
lea eax, [ebp - 0x13c]
push eax
lea ecx, [ebp - 0x120]
call fcn.10031c10
mov ecx, dword [ebp - 0x124]
lea eax, [ebp - 0x110]
push eax
call fcn.10030e40
push eax
lea ecx, [ebp - 0x120]
call fcn.10031bc0
test al, al
jne 0x100598f4
mov edi, dword [ebp - 0x114]
push 0
push 0
lea eax, [edi + 0xc4]
mov ecx, edi
push eax
call fcn.10061e70
lea esi, [edi + 0x60]
lea eax, [ebp - 0x120]
mov dword [ebp - 0x124], esi
push eax
mov ecx, esi
call fcn.100311a0
lea eax, [ebp - 0x110]
mov ecx, esi
push eax
call fcn.10030e40
push eax
lea ecx, [ebp - 0x120]
call fcn.10031bc0
test al, al
je 0x10059a82
mov edi, dword [ebp + 0xc]
lea ecx, [ebp - 0x120]
call fcn.10031bb0
lea esi, [eax + 0x28]
mov ecx, esi
call fcn.100311b0
test al, al
jne 0x10059a43
mov ecx, esi
call fcn.10031350
mov dword [ebp - 0x130], eax
lea ecx, [edi + 1]
mov eax, dword [eax]
cmp ecx, eax
jae 0x10059a27
xor ecx, ecx
mov edx, edi
add edx, 0x2710
adc ecx, ecx
test ecx, ecx
ja 0x10059a43
jb 0x10059a27
cmp edx, eax
jae 0x10059a43
mov eax, dword [ebp - 0x130]
lea ecx, [ebp - 0x150]
add eax, 4
push eax
call fcn.10031b50
mov ecx, esi
call fcn.100311c0
push ecx
lea eax, [ebp - 0x13c]
push eax
lea ecx, [ebp - 0x120]
call fcn.10031c10
mov ecx, dword [ebp - 0x124]
lea eax, [ebp - 0x110]
push eax
call fcn.10030e40
push eax
lea ecx, [ebp - 0x120]
call fcn.10031bc0
test al, al
jne 0x100599e2
mov edi, dword [ebp - 0x114]
lea esi, [edi + 0xc4]
mov ecx, edi
push esi
call fcn.10062c60
push esi
mov ecx, edi
call fcn.1005e050
lea eax, [ebp - 0x120]
push eax
lea ecx, [edi + 0x10]
call fcn.100311a0
lea eax, [ebp - 0x110]
push eax
lea ecx, [edi + 0x10]
call fcn.10030e40
push eax
lea ecx, [ebp - 0x120]
call fcn.10031bc0
test al, al
je 0x10059b76
lea ebx, [ebx]
lea ecx, [ebp - 0x120]
call fcn.10031bb0
lea esi, [eax + 0x18]
mov ecx, esi
call fcn.100311b0
test al, al
jne 0x10059b40
mov ecx, esi
call fcn.10031350
mov dword [ebp - 0x130], eax
mov edx, dword [eax]
mov eax, dword [ebp + 0xc]
cmp eax, edx
jae 0x10059b12
xor ecx, ecx
add eax, 0x2710
adc ecx, ecx
test ecx, ecx
ja 0x10059b40
jb 0x10059b12
cmp eax, edx
jae 0x10059b40
mov eax, dword [ebp - 0x130]
mov ecx, dword [edi + 0x6f0]
add eax, 4
push 2
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.10020260
push eax
lea ecx, [ebp - 0x150]
call fcn.10031b50
mov ecx, esi
call fcn.100311c0
push ecx
lea eax, [ebp - 0x13c]
push eax
lea ecx, [ebp - 0x120]
call fcn.10031c10
lea eax, [ebp - 0x110]
push eax
lea ecx, [edi + 0x10]
call fcn.10030e40
push eax
lea ecx, [ebp - 0x120]
call fcn.10031bc0
test al, al
jne 0x10059ad0
lea eax, [edi + 0xc4]
mov ecx, edi
push eax
call fcn.10063440
lea eax, [ebp - 0x10c]
push eax
lea ecx, [edi + 0x6c]
call fcn.100311a0
lea eax, [ebp - 0x13c]
push eax
lea ecx, [edi + 0x6c]
call fcn.10030e40
push eax
lea ecx, [ebp - 0x10c]
call fcn.10031bc0
test al, al
je 0x1005a03f
jmp 0x10059bc0
lea ecx, [ebp - 0x10c]
call fcn.10031bb0
mov esi, eax
mov dword [ebp - 0x118], esi
mov cl, byte [esi]
lea eax, [esi + 0x14]
mov byte [ebp - 0x16c], cl
mov ecx, eax
mov dword [ebp - 0x110], eax
call fcn.100311b0
test al, al
jne 0x10059c50
mov ecx, dword [ebp - 0x110]
call fcn.10031350
mov esi, dword [ebp + 0xc]
mov edx, dword [eax]
cmp esi, edx
jae 0x10059c1f
xor ecx, ecx
add esi, 0x2710
adc ecx, ecx
test ecx, ecx
ja 0x1005a009
jb 0x10059c1f
cmp esi, edx
jae 0x1005a009
mov ecx, dword [edi + 0x6f0]
add eax, 4
push 2
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.10020260
push eax
lea ecx, [ebp - 0x150]
call fcn.10031b50
mov ecx, dword [ebp - 0x110]
call fcn.100311c0
jmp 0x1005a009
cmp byte [esi + 4], 0
je 0x1005a009
cmp byte [esi + 0x74], 0
je 0x1005a009
movzx eax, word [esi]
lea ecx, [ebp - 0x128]
push ecx
lea ecx, [esi + 0x68]
mov dword [ebp - 0x12c], eax
mov byte [ebp - 0x119], 0
call fcn.10030e40
lea eax, [ebp - 0x130]
push eax
lea ecx, [esi + 0x68]
call fcn.10030e50
push eax
lea ecx, [ebp - 0x128]
call fcn.10031bc0
test al, al
je 0x10059d56
jmp 0x10059cb0
lea ecx, [ebp - 0x128]
call fcn.10006270
mov ecx, dword [esi + 8]
mov eax, dword [eax + 4]
add eax, ecx
cmp eax, dword [esi + 0xc]
jbe 0x10059ccd
cmp eax, dword [ebp + 0xc]
jbe 0x10059d01
push ecx
lea eax, [ebp - 0x110]
push eax
lea ecx, [ebp - 0x128]
call fcn.10031bf0
lea eax, [ebp - 0x130]
push eax
lea ecx, [esi + 0x68]
call fcn.10030e50
push eax
lea ecx, [ebp - 0x128]
call fcn.10031bc0
test al, al
jne 0x10059cb0
jmp 0x10059d56
mov eax, dword [ebp - 0x12c]
lea ecx, [ebp - 0x128]
mov dword [ebp - 0x24], eax
call fcn.10006270
push 2
mov ecx, dword [eax + 8]
mov dword [ebp - 0x20], ecx
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x1c], ecx
xor ecx, ecx
cmp byte [eax], cl
lea eax, [ebp - 0x24]
push eax
setne cl
lea eax, [ebp - 0xb8]
mov dword [ebp - 0x18], ecx
mov ecx, dword [edi + 0x6f0]
push eax
call fcn.10020260
push eax
lea ecx, [ebp - 0x150]
call fcn.10031b50
mov byte [ebp - 0x119], 1
lea eax, [esi + 0x30]
lea ecx, [ebp - 0x134]
mov dword [ebp - 0x120], eax
push ecx
mov ecx, eax
call fcn.10030e40
lea eax, [ebp - 0x174]
push eax
lea ecx, [esi + 0x30]
call fcn.10030e50
push eax
lea ecx, [ebp - 0x134]
call fcn.10031bc0
test al, al
je 0x10059e04
mov eax, dword [esi + 0xc]
mov esi, dword [esi + 8]
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x124], esi
mov edi, edi
lea ecx, [ebp - 0x134]
call fcn.10006270
mov eax, dword [eax + 4]
add eax, esi
cmp eax, dword [ebp - 0x110]
jbe 0x10059dc9
mov esi, dword [ebp + 0xc]
cmp eax, esi
jbe 0x10059e7d
mov esi, dword [ebp - 0x124]
push ecx
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x134]
call fcn.10031bf0
mov ecx, dword [ebp - 0x120]
lea eax, [ebp - 0x174]
push eax
call fcn.10030e50
push eax
lea ecx, [ebp - 0x134]
call fcn.10031bc0
test al, al
jne 0x10059da0
mov esi, dword [ebp - 0x118]
cmp byte [ebp - 0x119], 0
jne 0x10059fd2
lea eax, [esi + 0x78]
mov ecx, eax
mov dword [ebp - 0x120], eax
call fcn.10030e70
test al, al
jne 0x1005a009
cmp byte [esi + 0x1c], al
jne 0x10059e43
push dword [ebp - 0x16c]
mov ecx, edi
call fcn.1005ef00
test al, al
jne 0x1005a009
lea ecx, [esi + 0x78]
call fcn.10006270
mov eax, dword [eax + 4]
add eax, dword [esi + 8]
mov esi, dword [ebp + 0xc]
cmp eax, esi
ja 0x1005a009
mov eax, dword [ebp - 0x118]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x110], eax
cmp eax, 0xffffffff
jne 0x10059ed0
xor eax, eax
mov dword [ebp - 0x114], eax
jmp 0x10059f5a
mov eax, dword [ebp - 0x12c]
lea ecx, [ebp - 0x134]
mov dword [ebp - 0x48], eax
call fcn.10006270
push 2
mov ecx, dword [eax + 8]
mov dword [ebp - 0x44], ecx
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x40], ecx
xor ecx, ecx
cmp byte [eax], cl
lea eax, [ebp - 0x48]
push eax
setne cl
lea eax, [ebp - 0xd8]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [edi + 0x6f0]
push eax
call fcn.10020260
push eax
lea ecx, [ebp - 0x150]
call fcn.10031b50
jmp 0x10059fd5
mov ecx, dword [ebp - 0x120]
call fcn.10030e60
mov ecx, dword [ebp - 0x110]
dec eax
cmp ecx, eax
jne 0x10059f07
mov ecx, dword [ebp - 0x118]
mov eax, esi
sub eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x84]
jb 0x1005a009
xor eax, eax
mov dword [ebp - 0x114], eax
jmp 0x10059f5a
lea eax, [ecx + 1]
mov ecx, dword [ebp - 0x120]
push eax
mov dword [ebp - 0x114], eax
call fcn.10030e80
push dword [ebp - 0x110]
mov ecx, dword [ebp - 0x120]
mov esi, eax
call fcn.10030e80
mov edx, dword [esi + 4]
mov ecx, dword [ebp - 0x118]
mov esi, dword [ebp + 0xc]
sub edx, dword [eax + 4]
mov eax, esi
sub eax, dword [ecx + 0xc]
cmp eax, edx
jb 0x1005a009
mov eax, dword [ebp - 0x114]
cmp eax, 0xffffffff
je 0x1005a009
mov ecx, dword [ebp - 0x120]
push eax
call fcn.10030e80
xor ecx, ecx
push 2
movdqu xmm1, xmmword [eax]
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0x34], eax
movd eax, xmm1
movdqa xmm0, xmm1
psrldq xmm0, 8
movd dword [ebp - 0x30], xmm0
movdqa xmm0, xmm1
test al, al
psrldq xmm0, 0xc
lea eax, [ebp - 0x34]
movd dword [ebp - 0x2c], xmm0
setne cl
push eax
lea eax, [ebp - 0xc8]
mov dword [ebp - 0x28], ecx
mov ecx, dword [edi + 0x6f0]
push eax
call fcn.10020260
push eax
lea ecx, [ebp - 0x150]
call fcn.10031b50
mov eax, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x114]
mov dword [eax + 0x10], ecx
jmp 0x10059fd5
mov esi, dword [ebp + 0xc]
lea ecx, [ebp - 0x150]
call fcn.10031b40
mov edx, eax
mov eax, dword [ebp - 0x118]
cmp dword [edx + 0xc], 1
sete cl
mov byte [eax + 0x1c], cl
test cl, cl
je 0x1005a006
movdqu xmm0, xmmword [edx]
movdqu xmmword [eax + 0x20], xmm0
mov dword [eax + 0x2c], 0
mov dword [eax + 0xc], esi
push ecx
lea eax, [ebp - 0x158]
push eax
lea ecx, [ebp - 0x10c]
call fcn.10031c10
lea eax, [ebp - 0x13c]
push eax
lea ecx, [edi + 0x6c]
call fcn.10030e40
push eax
lea ecx, [ebp - 0x10c]
call fcn.10031bc0
test al, al
jne 0x10059bc0
lea eax, [edi + 0xc4]
mov ecx, edi
push eax
call fcn.1005e430
lea eax, [ebp - 0x10c]
push eax
lea ecx, [edi + 0x20]
call fcn.100311a0
lea eax, [ebp - 0x16c]
push eax
lea ecx, [edi + 0x20]
call fcn.10030e40
push eax
lea ecx, [ebp - 0x10c]
call fcn.10031bc0
test al, al
je 0x1005a13a
nop
lea ecx, [ebp - 0x10c]
call fcn.10031bb0
mov dword [ebp - 0x13c], eax
lea esi, [eax + 0x14]
mov ecx, esi
call fcn.100311b0
test al, al
jne 0x1005a104
lea eax, [ebp - 0x158]
mov ecx, esi
push eax
call fcn.100311a0
mov ecx, eax
call fcn.10031be0
mov edx, eax
mov eax, dword [ebp + 0xc]
cmp eax, dword [edx]
jae 0x1005a0d0
xor ecx, ecx
add eax, 0x2710
adc ecx, ecx
test ecx, ecx
ja 0x1005a104
jb 0x1005a0d0
cmp eax, dword [edx]
jae 0x1005a104
mov eax, dword [ebp - 0x13c]
cmp byte [eax + 0x34], 0
lea eax, [edx + 4]
jne 0x1005a0f1
mov ecx, dword [edi + 0x6f0]
push 2
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.10020260
push eax
lea ecx, [ebp - 0x150]
call fcn.10031b50
mov ecx, esi
call fcn.100311c0
push ecx
lea eax, [ebp - 0x174]
push eax
lea ecx, [ebp - 0x10c]
call fcn.10031c10
lea eax, [ebp - 0x16c]
push eax
lea ecx, [edi + 0x20]
call fcn.10030e40
push eax
lea ecx, [ebp - 0x10c]
call fcn.10031bc0
test al, al
jne 0x1005a080
lea esi, [edi + 0xc4]
mov ecx, edi
push esi
call fcn.1005e640
push esi
mov ecx, edi
call fcn.1005dca0
lea eax, [ebp - 0x10c]
push eax
lea ecx, [edi + 8]
call fcn.100311a0
lea eax, [ebp - 0x16c]
push eax
lea ecx, [edi + 8]
call fcn.10030e40
push eax
lea ecx, [ebp - 0x10c]
call fcn.10031bc0
test al, al
je 0x1005a20f
lea ecx, [ebp - 0x10c]
call fcn.10031bb0
mov dword [ebp - 0x13c], eax
lea esi, [eax + 0x10]
mov ecx, esi
call fcn.100311b0
test al, al
jne 0x1005a1d9
mov ecx, esi
call fcn.10031350
mov ecx, dword [ebp - 0x13c]
cmp byte [ecx + 0x48], 0
jne 0x1005a1c6
mov ecx, dword [edi + 0x6f0]
push 2
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.10020260
push eax
lea ecx, [ebp - 0x150]
call fcn.10031b50
mov ecx, esi
call fcn.100311c0
push ecx
lea eax, [ebp - 0x158]
push eax
lea ecx, [ebp - 0x10c]
call fcn.10031c10
lea eax, [ebp - 0x16c]
push eax
lea ecx, [edi + 8]
call fcn.10030e40
push eax
lea ecx, [ebp - 0x10c]
call fcn.10031bc0
test al, al
jne 0x1005a182
cmp dword [edi + 0xa0], 0
je 0x1005a304
lea ecx, [edi + 0x6e4]
call fcn.100311b0
test al, al
jne 0x1005a304
lea eax, [ebp - 0x10c]
push eax
lea ecx, [ebp - 0x150]
call fcn.10030e40
lea eax, [ebp - 0x13c]
push eax
lea ecx, [ebp - 0x150]
call fcn.10030e50
push eax
lea ecx, [ebp - 0x10c]
call fcn.10031bc0
test al, al
je 0x1005a304
jmp 0x1005a270
lea ecx, [ebp - 0x10c]
call fcn.10006270
mov esi, eax
movzx ecx, byte [esi]
push ecx
mov ecx, edi
call fcn.1005ee80
test al, al
je 0x1005a2cb
cmp dword [esi + 0xc], 1
jne 0x1005a2cb
mov ecx, dword [edi + 0x6f0]
lea eax, [ebp - 0x60]
push eax
call fcn.10055e00
push 0x100c37cc
lea ecx, [ebp - 0x60]
call fcn.10005910
push eax
call dword [sym.imp.MSVCR120.dll_wcsstr]
add esp, 8
test eax, eax
je 0x1005a2c3
mov byte [edi + 0xa5], 1
lea ecx, [ebp - 0x60]
call fcn.10005870
push ecx
lea eax, [ebp - 0x158]
push eax
lea ecx, [ebp - 0x10c]
call fcn.10031bf0
lea eax, [ebp - 0x13c]
push eax
lea ecx, [ebp - 0x150]
call fcn.10030e50
push eax
lea ecx, [ebp - 0x10c]
call fcn.10031bc0
test al, al
jne 0x1005a270
mov eax, dword [ebp + 8]
push dword [ebp - 0x170]
mov esi, dword [ebp + 0xc]
lea ecx, [ebp - 0x150]
push ecx
push esi
push eax
mov ecx, edi
call fcn.1005e740
test byte [0x100f0860], 7
jne 0x1005a3ff
cmp byte [edi + 0xc6], 0
je 0x1005a351
push 2
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
jne 0x1005a351
push 2
mov ecx, edi
call fcn.10055da0
cmp byte [edi + 0xc9], 0
je 0x1005a375
push 5
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
jne 0x1005a375
push 5
mov ecx, edi
call fcn.10055da0
cmp byte [edi + 0xca], 0
je 0x1005a399
push 6
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
jne 0x1005a399
push 6
mov ecx, edi
call fcn.10055da0
cmp dword [edi + 0x8c], 0
je 0x1005a3ff
xor ecx, ecx
mov esi, 0x8000
mov dword [ebp - 0x10c], ecx
nop
mov eax, dword [edi + 0x8c]
movzx eax, byte [eax + ecx + 0x14]
cmp byte [edi + eax + 0xc4], 0
je 0x1005a3f0
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, dword [ebp - 0x10c]
test si, ax
jne 0x1005a3f0
mov eax, dword [edi + 0x8c]
movzx eax, byte [eax + ecx + 0x14]
mov ecx, edi
push eax
call fcn.10055da0
mov ecx, dword [ebp - 0x10c]
inc ecx
mov dword [ebp - 0x10c], ecx
cmp ecx, 4
jl 0x1005a3b0
mov esi, dword [ebp + 0xc]
mov ecx, dword [edi + 0xbc]
test ecx, ecx
je 0x1005a485
add ecx, 0x60
call fcn.100311b0
test al, al
jne 0x1005a485
lea esp, [esp]
mov ecx, dword [edi + 0xbc]
add ecx, 0x60
call fcn.10031350
mov dword [ebp - 0x13c], eax
mov eax, dword [eax]
cmp esi, eax
jae 0x1005a450
xor ecx, ecx
mov edx, esi
add edx, 0x2710
adc ecx, ecx
test ecx, ecx
ja 0x1005a485
jb 0x1005a450
cmp edx, eax
jae 0x1005a485
mov eax, dword [ebp - 0x13c]
mov ecx, dword [ebp - 0x170]
add eax, 4
push eax
call fcn.10031b50
mov ecx, dword [edi + 0xbc]
add ecx, 0x60
call fcn.100311c0
mov ecx, dword [edi + 0xbc]
add ecx, 0x60
call fcn.100311b0
test al, al
je 0x1005a420
cmp dword [edi + 0xc0], 0
je 0x1005a540
mov ecx, edi
call fcn.10063d20
lea eax, [edi + 0xc4]
mov ecx, edi
push eax
call fcn.10063db0
mov esi, dword [edi + 0xc0]
lea eax, [ebp - 0x10c]
push eax
lea ecx, [esi + 0x28]
call fcn.100311a0
lea eax, [ebp - 0x13c]
push eax
lea ecx, [esi + 0x28]
call fcn.10030e40
push eax
lea ecx, [ebp - 0x10c]
call fcn.10031bc0
test al, al
je 0x1005a52f
jmp 0x1005a4e0
lea ecx, [ebp - 0x10c]
call fcn.10031be0
mov ecx, dword [ebp - 0x170]
push eax
call fcn.10031b50
push ecx
lea eax, [ebp - 0x158]
push eax
lea ecx, [ebp - 0x10c]
call fcn.10031c50
mov ecx, dword [edi + 0xc0]
lea eax, [ebp - 0x13c]
push eax
add ecx, 0x28
call fcn.10030e40
push eax
lea ecx, [ebp - 0x10c]
call fcn.10031bc0
test al, al
jne 0x1005a4e0
mov ecx, dword [edi + 0xc0]
add ecx, 0x28
call fcn.10031240
mov esi, dword [ebp + 0xc]
add edi, 0x6cc
lea eax, [ebp - 0x118]
push eax
mov ecx, edi
mov dword [ebp - 0x110], edi
call fcn.100311a0
lea eax, [ebp - 0x13c]
mov ecx, edi
push eax
call fcn.10030e40
push eax
lea ecx, [ebp - 0x118]
call fcn.10031bc0
test al, al
je 0x1005a611
lea esp, [esp]
lea ecx, [ebp - 0x118]
call fcn.10031be0
mov edi, dword [eax]
cmp esi, edi
jae 0x1005a5bc
xor ecx, ecx
mov edx, esi
add edx, 0x2710
adc ecx, ecx
test ecx, ecx
jb 0x1005a5bc
ja 0x1005a5a7
cmp edx, edi
jb 0x1005a5bc
push ecx
lea eax, [ebp - 0x158]
push eax
lea ecx, [ebp - 0x118]
call fcn.10031c50
jmp 0x1005a5eb
mov ecx, dword [ebp - 0x170]
add eax, 4
push eax
call fcn.10031b50
push dword [ebp - 0x118]
mov ecx, dword [ebp - 0x110]
lea eax, [ebp - 0x16c]
push eax
call fcn.10031e90
mov eax, dword [eax]
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp - 0x110]
lea eax, [ebp - 0x13c]
push eax
call fcn.10030e40
push eax
lea ecx, [ebp - 0x118]
call fcn.10031bc0
test al, al
jne 0x1005a580
cmp byte [ebp + 8], 0
jne 0x1005a61d
inc dword [0x100f0860]
lea ecx, [ebp - 0x150]
call fcn.100116f0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100ad688
mov esp, ebp
pop ebp
ret 0xc