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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100b2161
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 [0x100ec5d4], 1
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
je 0x10056b9c
cmp byte [ebp + 8], 0
je 0x10057c86
mov ecx, dword [0x100ec5f4]
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 0x10056cb8
mov eax, dword [0x100ec5e4]
xorps xmm0, xmm0
movdqu xmmword [ebp - 0x48], xmm0
movdqu xmmword [ebp - 0x24], xmm0
test eax, eax
jne 0x10056bed
mov eax, dword [edi + 0x6f0]
push 2
push dword [eax + 8]
call dword [sym.imp.USER32.dll_GetAncestor]
mov dword [0x100ec5e4], 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 0x10056c31
mov ecx, esi
sub ecx, dword [ebp - 0x20]
cmp ecx, eax
jl 0x10056ca3
mov eax, dword [ebp - 0x48]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jg 0x10056c4f
mov eax, dword [ebp - 0x3c]
sub eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xa
jle 0x10056ca3
mov edi, dword [ebp - 0x114]
mov eax, dword [edi + 0x6f0]
push dword [eax + 8]
call dword [sym.imp.USER32.dll_GetParent]
cmp dword [0x100ec5e4], eax
jne 0x10056ca9
call dword [sym.imp.USER32.dll_GetForegroundWindow]
cmp eax, dword [0x100ec5e4]
je 0x10056c94
mov ecx, dword [edi + 0x6f0]
cmp eax, dword [ecx + 8]
je 0x10056c94
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
xor al, al
mov byte [0x100ec5c2], al
jmp 0x10056cbd
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
mov al, 1
mov byte [0x100ec5c2], al
jmp 0x10056cbd
mov edi, dword [ebp - 0x114]
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
xor al, al
mov byte [0x100ec5c2], al
jmp 0x10056cbd
mov al, byte [0x100ec5c2]
inc dword [0x100ec5f4]
test al, al
je 0x10056d03
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 0x10056d97
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 0x10056d40
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 0x10056d97
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 0x10056d97
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 0x10057260
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 0x10056ebb
test cl, cl
je 0x10056ddf
movzx eax, cl
cmp byte [eax + esi + 0xc4], 1
jne 0x10056ebb
cmp byte [edi + 0x14], 0
mov edx, dword [ebp + 0xc]
jne 0x10056e7a
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 0x10056e7a
mov esi, dword [edi + 0x84]
cmp esi, dword [edi + 0x88]
je 0x10056e74
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.10034720
mov edx, eax
mov ecx, 0xccccccb
mov eax, dword [edi + 0x28]
sub ecx, eax
cmp ecx, 1
jb 0x1005739f
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 0x10056e14
mov esi, dword [ebp - 0x114]
cmp dword [edi + 0x28], 0
je 0x10056f68
mov esi, dword [edi + 0x24]
mov esi, dword [esi]
mov dword [ebp - 0x128], esi
cmp esi, dword [edi + 0x24]
je 0x10057211
cmp edx, dword [esi + 0x10]
jae 0x10056eca
xor eax, eax
mov ecx, edx
add ecx, 0x2710
adc eax, eax
test eax, eax
jb 0x10056eca
ja 0x10056eb4
cmp ecx, dword [esi + 0x10]
jb 0x10056eca
mov esi, dword [esi]
jmp 0x10056f54
cmp byte [edi + 0x14], 0
mov edx, dword [ebp + 0xc]
je 0x10056e7a
mov byte [edi + 0x14], 0
jmp 0x10056e7a
mov al, byte [esi + 8]
mov dl, byte [esi + 0xc]
mov cl, al
mov byte [ebp - 0x119], al
call fcn.10056a20
cmp byte [esi + 0xc], 0
mov dl, byte [ebp - 0x119]
je 0x10056f1c
mov eax, dword [ebp - 0x114]
movzx ecx, dl
mov dword [ebp - 0x110], ecx
cmp byte [eax + ecx + 0xc4], 0
jne 0x10056f18
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 0x10056e98
jmp 0x10057211
cmp byte [edi + 0x14], 0
je 0x10057217
cmp byte [edi + 0x70], 0
je 0x10057217
mov esi, dword [edi + 0x84]
xor cl, cl
mov byte [ebp - 0x119], cl
cmp esi, dword [edi + 0x88]
je 0x100570a5
jmp 0x10056f9b
mov edx, dword [ebp + 0xc]
mov al, byte [esi]
test al, al
je 0x1005708e
mov eax, dword [esi + 4]
mov ecx, dword [edi + 0x18]
add eax, ecx
cmp eax, dword [edi + 0x1c]
jbe 0x10057088
cmp eax, edx
ja 0x10057088
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.10034720
mov edx, eax
mov ecx, 0xccccccb
mov eax, dword [edi + 0x28]
sub ecx, eax
cmp ecx, 1
jb 0x1005739f
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.10034720
mov edx, eax
mov ecx, 0xccccccb
mov eax, dword [edi + 0x28]
sub ecx, eax
cmp ecx, 1
jb 0x1005739f
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 0x1005708e
mov cl, byte [ebp - 0x119]
add esi, 0xc
cmp esi, dword [edi + 0x88]
jne 0x10056f98
test cl, cl
jne 0x10057205
mov eax, dword [edi + 0x90]
cmp eax, dword [edi + 0x94]
je 0x10057211
mov eax, dword [eax + 4]
add eax, dword [edi + 0x18]
mov esi, dword [ebp + 0xc]
cmp eax, esi
ja 0x10057211
cmp dword [edi + 0x20], 0xffffffff
jne 0x100570d8
xor eax, eax
mov dword [ebp - 0x118], eax
jmp 0x10057145
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 0x10057114
mov eax, esi
sub eax, dword [edi + 0x1c]
cmp eax, 0x40
jb 0x10057211
xor eax, eax
mov dword [ebp - 0x118], eax
jmp 0x10057145
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 0x10057211
mov eax, dword [edi + 0x20]
inc eax
mov dword [ebp - 0x118], eax
cmp eax, 0xffffffff
je 0x10057211
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 0x10057184
push eax
mov ecx, esi
call fcn.1005d620
test al, al
jne 0x10057217
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.100307b0
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.100307b0
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 0x10057257
mov eax, dword [edi + 8]
cmp byte [eax + 0xd], 0
jne 0x1005723c
mov edi, eax
mov eax, dword [edi]
cmp byte [eax + 0xd], 0
jne 0x10057257
mov edi, eax
mov eax, dword [edi]
cmp byte [eax + 0xd], 0
je 0x10057230
jmp 0x10057257
mov eax, dword [edi + 4]
cmp byte [eax + 0xd], 0
jne 0x10057255
cmp edi, dword [eax + 8]
jne 0x10057255
mov edi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x10057245
mov edi, eax
cmp edi, dword [esi + 0x7c]
jne 0x10056db0
mov edi, dword [ebp - 0x114]
mov eax, dword [edi + 0x84]
mov esi, dword [eax]
cmp esi, eax
je 0x10057633
cmp dword [esi + 0x1c], 0
jne 0x100574b9
movzx eax, word [esi + 0x10]
mov ecx, eax
movzx eax, al
shr ecx, 8
cmp byte [eax + edi + 0xc4], 1
jne 0x100573aa
test cl, cl
je 0x100572af
movzx eax, cl
cmp byte [eax + edi + 0xc4], 1
jne 0x100573aa
cmp byte [esi + 0x14], 0
jne 0x100574af
mov byte [esi + 0x14], 1
mov edi, dword [esi + 0x90]
cmp edi, dword [esi + 0x94]
je 0x100574a9
lea ecx, [edi + 8]
mov dword [ebp - 0x10c], ecx
jmp 0x100572e0
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 0x10057322
push 0xffffffffffffffff
push 0
push ecx
mov ecx, eax
call fcn.10004ff0
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.1006a360
mov edx, eax
mov ecx, 0x5d1745c
mov eax, dword [esi + 0x1c]
sub ecx, eax
cmp ecx, 1
jb 0x1005739f
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 0x1005737c
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 0x100572e0
jmp 0x100574a9
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 0x100574af
mov byte [esi + 0x14], 0
mov edi, dword [esi + 0x9c]
cmp edi, dword [esi + 0xa0]
je 0x100574a9
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 0x10057424
push 0xffffffffffffffff
push 0
push ecx
mov ecx, eax
call fcn.10004ff0
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.1006a360
mov edx, eax
mov ecx, 0x5d1745c
mov eax, dword [esi + 0x1c]
sub ecx, eax
cmp ecx, 1
jb 0x1005739f
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 0x1005748b
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 0x100573d3
mov edi, dword [ebp - 0x114]
cmp dword [esi + 0x1c], 0
je 0x100575e7
mov eax, dword [esi + 0x18]
mov ecx, dword [eax]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ecx + 0xc]
jae 0x100574e5
mov edx, eax
xor eax, eax
add edx, 0x2710
adc eax, eax
test eax, eax
ja 0x100575e7
jb 0x100574e5
cmp edx, dword [ecx + 0xc]
jae 0x100575e7
mov eax, dword [ecx + 8]
cmp eax, 1
jne 0x1005750a
mov eax, dword [edi + 0x6f0]
push 0
push 0
push 0x412
push dword [eax + 8]
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x10057594
cmp eax, 2
jne 0x10057561
mov eax, dword [edi + 0x6f0]
add eax, 0x710
mov dword [ebp - 0x110], eax
cmp dword [eax + 0x124], 0
je 0x10057594
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 0x10057594
mov eax, dword [ecx + 0x260]
push 0
push 0
push 0x413
push dword [eax + 8]
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x10057594
cmp eax, 3
jne 0x1005757f
add ecx, 0x10
cmp dword [ecx + 0x14], 8
jb 0x10057571
mov ecx, dword [ecx]
push ecx
mov ecx, dword [edi + 0x6f0]
call fcn.100547d0
jmp 0x10057594
cmp eax, 4
jne 0x10057594
movzx eax, byte [ecx + 0x28]
mov ecx, dword [edi + 0x6f0]
push eax
call fcn.100548d0
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 0x100575c9
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 0x10057627
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
jne 0x1005760c
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
jne 0x10057627
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
je 0x10057600
jmp 0x10057627
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x10057625
cmp esi, dword [eax + 8]
jne 0x10057625
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x10057615
mov esi, eax
cmp esi, dword [edi + 0x84]
jne 0x10057276
cmp dword [edi + 0x34], 0
je 0x10057af5
mov ecx, dword [0x100ec5d4]
mov eax, 0xcccccccd
mul ecx
shr edx, 4
lea eax, [edx + edx*4]
shl eax, 2
sub ecx, eax
jne 0x10057af5
mov ecx, dword [edi + 0x6f0]
call fcn.1001d870
test al, al
jne 0x10057695
mov ecx, dword [edi + 0x6f0]
cmp dword [ecx + 0xeec], 0x12
jne 0x10057af5
add ecx, 0xedc
mov edx, str.com.mobile.legends
call fcn.10011a60
test al, al
je 0x10057af5
mov eax, dword [edi + 0x6f0]
mov ecx, dword [eax + 0xeb0]
cmp ecx, 0x5a
je 0x100576bc
cmp ecx, 0x10e
je 0x100576bc
mov ecx, dword [eax + 0xf24]
mov eax, dword [eax + 0xf28]
jmp 0x100576c8
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 [0x100ce228]
mulsd xmm1, qword [0x100ce330]
mulsd xmm1, qword [0x100ce140]
addsd xmm1, qword [0x100ce320]
mulsd xmm1, xmm2
divsd xmm1, qword [0x100ce330]
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 0x100578ca
mov eax, dword [ebp - 0x118]
movsd xmm4, qword [0x100ce230]
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.1001f2f0
mov eax, dword [ebp - 0x10c]
cmp dword [ebp - 0x15c], eax
jle 0x10057894
mov ecx, dword [ebp - 0x134]
mov eax, ecx
sub eax, dword [ebp - 0x110]
mov edx, dword [ebp - 0x158]
cmp edx, eax
jle 0x10057894
inc dword [ebp - 0x120]
comisd xmm3, xmm4
mov dword [esi + 0x50], 2
jbe 0x1005781b
movsd xmm2, qword [0x100ce258]
jmp 0x10057823
movsd xmm2, qword [0x100ce240]
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 0x1005785a
mov dword [ebp - 0x124], esi
mov dword [esi + 0x50], 1
comisd xmm3, xmm4
jbe 0x1005786a
movsd xmm0, qword [0x100ce1e0]
jmp 0x10057872
movsd xmm0, qword [0x100ce198]
comisd xmm0, xmm1
jbe 0x10057894
mov eax, dword [ebp - 0x114]
cmp edi, dword [eax + 0x30]
je 0x1005788b
mov eax, dword [esi + 0x20]
cmp eax, dword [edi + 0x20]
jle 0x1005788d
mov edi, esi
mov dword [esi + 0x50], 3
lea ecx, [ebp - 0x12c]
call fcn.10009e10
mov eax, dword [ebp - 0x114]
mov esi, dword [ebp - 0x12c]
movsd xmm3, qword [ebp - 0x144]
movsd xmm4, qword [0x100ce230]
cmp esi, dword [eax + 0x30]
jne 0x100577a2
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 0x10057949
add ecx, 0xedc
mov edx, str.com.mobile.legends
call fcn.10011a60
test al, al
je 0x10057949
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 0x10057960
mov ecx, dword [eax + 0x24]
sub ecx, dword [ebp - 0x128]
mov dword [eax + 0x1c], ecx
cmp edi, dword [esi + 0x30]
je 0x100579f6
mov ecx, dword [esi + 0x6f0]
call fcn.1001d870
test al, al
jne 0x100579f6
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.1001f2f0
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 [0x100ce188]
andpd xmm1, xmmword [0x100ce6d0]
comisd xmm1, xmmword [0x100ce080]
jbe 0x100579f6
mov eax, dword [edi + 0x20]
sub eax, dword [ebp - 0x128]
mov dword [edi + 0x18], eax
cmp dword [ebp - 0x120], 4
mov edi, esi
jne 0x10057af5
mov ecx, dword [edi + 0x6f0]
call fcn.1001d870
test al, al
jne 0x10057af5
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 0x10057adf
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.1001f2f0
mov eax, dword [ebp - 0x118]
cmp dword [ebp - 0x15c], eax
jle 0x10057aba
mov eax, dword [ebp - 0x134]
sub eax, dword [ebp - 0x110]
cmp dword [ebp - 0x158], eax
jle 0x10057aba
cmp edi, dword [ebp - 0x12c]
jne 0x10057aa9
cmp esi, dword [ebp - 0x10c]
je 0x10057aba
mov edi, esi
jmp 0x10057aba
mov eax, dword [esi + 0x20]
cmp eax, dword [edi + 0x20]
jle 0x10057aba
cmp esi, dword [ebp - 0x10c]
cmovne edi, esi
lea ecx, [ebp - 0x124]
call fcn.10009e10
mov esi, dword [ebp - 0x124]
mov eax, dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x120]
cmp esi, eax
jne 0x10057a51
cmp edi, eax
je 0x10057aef
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 0x10057c0d
mov ecx, dword [edi + 0x8c]
test ecx, ecx
je 0x10057b87
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x10057b18
dec eax
mov dword [ecx + 0x20], eax
mov eax, dword [edi + 0x8c]
cmp dword [eax + 0x20], 0
jne 0x10057b87
cmp dword [eax + 0x68], 0
jne 0x10057b3a
push 0
lea eax, [edi + 0xc4]
mov ecx, edi
push eax
call fcn.1005a1a0
mov edx, dword [edi + 0x8c]
cmp dword [edx + 0x68], 0
je 0x10057b87
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.10030dc0
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 0x10057c0d
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x10057ba0
dec eax
mov dword [ecx + 0x14], eax
mov eax, dword [edi + 0xa0]
cmp dword [eax + 0x14], 0
jne 0x10057c0d
cmp dword [eax + 0x44], 0
jne 0x10057bc0
lea eax, [edi + 0xc4]
mov ecx, edi
push eax
call fcn.1005b900
mov edx, dword [edi + 0xa0]
cmp dword [edx + 0x44], 0
je 0x10057c0d
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.10030dc0
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.1005c1c0
mov eax, dword [edi + 0xb8]
test eax, eax
je 0x10057c86
cmp dword [eax + 0x58], 0
je 0x10057c86
mov eax, dword [eax + 0x54]
mov ecx, dword [eax]
mov eax, dword [ebp + 0xc]
mov esi, dword [ecx + 8]
cmp eax, esi
jae 0x10057c50
mov edx, eax
xor eax, eax
add edx, 0x2710
adc eax, eax
test eax, eax
ja 0x10057c86
jb 0x10057c50
cmp edx, esi
jae 0x10057c86
lea eax, [ecx + 0xc]
push eax
lea ecx, [ebp - 0x150]
call fcn.10030dc0
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.1005cac0
mov eax, dword [edi + 0x18]
mov esi, dword [eax]
mov dword [ebp - 0x10c], esi
cmp esi, eax
je 0x100581d6
jmp 0x10057cb0
cmp dword [esi + 0x3c], 0
mov al, byte [esi + 0x10]
mov byte [ebp - 0x130], al
je 0x10057e05
mov eax, dword [esi + 0x38]
mov ecx, dword [eax]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ecx + 8]
jae 0x10057cef
mov edx, eax
xor eax, eax
add edx, 0x2710
adc eax, eax
test eax, eax
ja 0x100581bc
jb 0x10057cef
cmp edx, dword [ecx + 8]
jae 0x100581bc
mov eax, dword [esi + 0x28]
test eax, eax
jne 0x10057dbf
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.10030dc0
mov edi, dword [ebp - 0x114]
jmp 0x10057de2
push eax
lea eax, [ecx + 0xc]
mov ecx, dword [edi + 0x6f0]
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.1001f570
push eax
lea ecx, [ebp - 0x150]
call fcn.10030dc0
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.10031650
jmp 0x100581bc
lea ecx, [ebp - 0x10c]
call fcn.10030e20
mov dword [ebp - 0x118], eax
cmp byte [eax + 4], 0
je 0x100581bc
push dword [ebp - 0x130]
mov ecx, edi
call fcn.1005d6a0
test al, al
jne 0x100581bc
mov ecx, dword [ebp - 0x118]
mov edx, dword [ecx + 0x14]
test edx, edx
je 0x10058067
mov eax, dword [ecx + 8]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100ce6c0]
mov eax, dword [sym.imp.MSVCR120.dll_rand]
movsd qword [ebp - 0x144], xmm0
movd xmm0, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [0x100ce308]
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 [0x100ce308]
divsd xmm1, xmm0
movaps xmm0, xmm1
call fcn.100ac8e1
mov edx, dword [ebp - 0x118]
mov esi, dword [ebp + 0xc]
mov ecx, esi
sub ecx, dword [edx + 0x1c]
cmp ecx, eax
jb 0x100581bc
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 0x10057f11
lea eax, [ebp - 0x48]
push 2
push eax
lea eax, [ebp - 0xe8]
jmp 0x10057f1c
push eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0xf8]
push eax
call fcn.1001f570
push eax
lea ecx, [ebp - 0x150]
call fcn.10030dc0
mov ecx, dword [ebp - 0x118]
mov eax, dword [ecx + 8]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100ce6c0]
movsd qword [ebp - 0x144], xmm0
movd xmm0, dword [ecx + 0x14]
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [0x100ce308]
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 [0x100ce308]
divsd xmm1, xmm0
movaps xmm0, xmm1
call fcn.100ac8e1
mov edx, eax
cmp edx, 0xc6
jb 0x10057fc6
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 0x10058042
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.100305d0
mov ecx, dword [ebp - 0x12c]
add edi, 0x10
cmp edi, dword [ebp - 0x124]
jbe 0x10058016
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.100305d0
mov ecx, dword [ebp - 0x118]
mov dword [ecx + 0x1c], esi
jmp 0x100581bc
mov edx, dword [ecx + 0xc]
mov esi, dword [ebp + 0xc]
cmp esi, edx
jb 0x100581bc
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 0x100581b9
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 0x100580e4
lea eax, [ebp - 0x24]
push 2
push eax
lea eax, [ebp - 0xc8]
jmp 0x100580ef
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0xd8]
push eax
call fcn.1001f570
push eax
lea ecx, [ebp - 0x150]
call fcn.10030dc0
mov eax, dword [ebp - 0x110]
mov eax, dword [eax]
cmp eax, 0x28
jae 0x10058164
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0x18], 0
mov eax, dword [ecx + 0x18]
mov ecx, dword [edi + 0x6f0]
test eax, eax
jne 0x10058148
push 2
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.1001f570
push eax
lea ecx, [ebp - 0x150]
call fcn.10030dc0
jmp 0x100581a1
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.1001f570
push eax
lea ecx, [ebp - 0x150]
call fcn.10030dc0
jmp 0x100581a1
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.100305d0
dec dword [ebp - 0x124]
mov ecx, dword [ebp - 0x118]
jne 0x100580b0
mov eax, dword [ebp - 0x12c]
mov dword [ecx + 0x10], eax
lea ecx, [ebp - 0x10c]
call fcn.10009e10
mov esi, dword [ebp - 0x10c]
cmp esi, dword [edi + 0x18]
jne 0x10057cb0
test byte [0x100ec5d4], 1
je 0x100581ea
mov eax, dword [ebp + 8]
test al, al
je 0x10058d47
push 0
push 0
lea eax, [edi + 0xc4]
mov ecx, edi
push eax
call fcn.1005e040
lea esi, [edi + 0x30]
lea eax, [ebp - 0x120]
mov dword [ebp - 0x124], esi
push eax
mov ecx, esi
call fcn.10030410
lea eax, [ebp - 0x110]
mov ecx, esi
push eax
call fcn.100300b0
push eax
lea ecx, [ebp - 0x120]
call fcn.10030e30
test al, al
je 0x100582e0
mov edi, dword [ebp + 0xc]
jmp 0x10058240
lea ecx, [ebp - 0x120]
call fcn.10030e20
lea esi, [eax + 0x44]
mov ecx, esi
call fcn.10030420
test al, al
jne 0x100582a1
mov ecx, esi
call fcn.100305c0
mov dword [ebp - 0x130], eax
lea ecx, [edi + 1]
mov eax, dword [eax]
cmp ecx, eax
jae 0x10058285
xor ecx, ecx
mov edx, edi
add edx, 0x2710
adc ecx, ecx
test ecx, ecx
ja 0x100582a1
jb 0x10058285
cmp edx, eax
jae 0x100582a1
mov eax, dword [ebp - 0x130]
lea ecx, [ebp - 0x150]
add eax, 4
push eax
call fcn.10030dc0
mov ecx, esi
call fcn.10030430
push ecx
lea eax, [ebp - 0x13c]
push eax
lea ecx, [ebp - 0x120]
call fcn.10030e80
mov ecx, dword [ebp - 0x124]
lea eax, [ebp - 0x110]
push eax
call fcn.100300b0
push eax
lea ecx, [ebp - 0x120]
call fcn.10030e30
test al, al
jne 0x10058240
mov edi, dword [ebp - 0x114]
cmp byte [ebp + 8], 0
jne 0x100584c2
lea eax, [edi + 0xc4]
mov ecx, edi
push eax
call fcn.1005fd40
lea esi, [edi + 0x58]
lea eax, [ebp - 0x120]
mov dword [ebp - 0x124], esi
push eax
mov ecx, esi
call fcn.10030410
lea eax, [ebp - 0x110]
mov ecx, esi
push eax
call fcn.100300b0
push eax
lea ecx, [ebp - 0x120]
call fcn.10030e30
test al, al
je 0x100583d4
mov edi, dword [ebp + 0xc]
lea ecx, [ebp - 0x120]
call fcn.10030e20
lea esi, [eax + 0x58]
mov ecx, esi
call fcn.10030420
test al, al
jne 0x10058395
mov ecx, esi
call fcn.100305c0
mov dword [ebp - 0x130], eax
lea ecx, [edi + 1]
mov eax, dword [eax]
cmp ecx, eax
jae 0x10058379
xor ecx, ecx
mov edx, edi
add edx, 0x2710
adc ecx, ecx
test ecx, ecx
ja 0x10058395
jb 0x10058379
cmp edx, eax
jae 0x10058395
mov eax, dword [ebp - 0x130]
lea ecx, [ebp - 0x150]
add eax, 4
push eax
call fcn.10030dc0
mov ecx, esi
call fcn.10030430
push ecx
lea eax, [ebp - 0x13c]
push eax
lea ecx, [ebp - 0x120]
call fcn.10030e80
mov ecx, dword [ebp - 0x124]
lea eax, [ebp - 0x110]
push eax
call fcn.100300b0
push eax
lea ecx, [ebp - 0x120]
call fcn.10030e30
test al, al
jne 0x10058334
mov edi, dword [ebp - 0x114]
push 0
push 0
lea eax, [edi + 0xc4]
mov ecx, edi
push eax
call fcn.10060610
lea esi, [edi + 0x60]
lea eax, [ebp - 0x120]
mov dword [ebp - 0x124], esi
push eax
mov ecx, esi
call fcn.10030410
lea eax, [ebp - 0x110]
mov ecx, esi
push eax
call fcn.100300b0
push eax
lea ecx, [ebp - 0x120]
call fcn.10030e30
test al, al
je 0x100584c2
mov edi, dword [ebp + 0xc]
lea ecx, [ebp - 0x120]
call fcn.10030e20
lea esi, [eax + 0x28]
mov ecx, esi
call fcn.10030420
test al, al
jne 0x10058483
mov ecx, esi
call fcn.100305c0
mov dword [ebp - 0x130], eax
lea ecx, [edi + 1]
mov eax, dword [eax]
cmp ecx, eax
jae 0x10058467
xor ecx, ecx
mov edx, edi
add edx, 0x2710
adc ecx, ecx
test ecx, ecx
ja 0x10058483
jb 0x10058467
cmp edx, eax
jae 0x10058483
mov eax, dword [ebp - 0x130]
lea ecx, [ebp - 0x150]
add eax, 4
push eax
call fcn.10030dc0
mov ecx, esi
call fcn.10030430
push ecx
lea eax, [ebp - 0x13c]
push eax
lea ecx, [ebp - 0x120]
call fcn.10030e80
mov ecx, dword [ebp - 0x124]
lea eax, [ebp - 0x110]
push eax
call fcn.100300b0
push eax
lea ecx, [ebp - 0x120]
call fcn.10030e30
test al, al
jne 0x10058422
mov edi, dword [ebp - 0x114]
lea esi, [edi + 0xc4]
mov ecx, edi
push esi
call fcn.10061400
push esi
mov ecx, edi
call fcn.1005c7f0
lea eax, [ebp - 0x120]
push eax
lea ecx, [edi + 0x10]
call fcn.10030410
lea eax, [ebp - 0x110]
push eax
lea ecx, [edi + 0x10]
call fcn.100300b0
push eax
lea ecx, [ebp - 0x120]
call fcn.10030e30
test al, al
je 0x100585b6
lea ebx, [ebx]
lea ecx, [ebp - 0x120]
call fcn.10030e20
lea esi, [eax + 0x18]
mov ecx, esi
call fcn.10030420
test al, al
jne 0x10058580
mov ecx, esi
call fcn.100305c0
mov dword [ebp - 0x130], eax
mov edx, dword [eax]
mov eax, dword [ebp + 0xc]
cmp eax, edx
jae 0x10058552
xor ecx, ecx
add eax, 0x2710
adc ecx, ecx
test ecx, ecx
ja 0x10058580
jb 0x10058552
cmp eax, edx
jae 0x10058580
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.1001f570
push eax
lea ecx, [ebp - 0x150]
call fcn.10030dc0
mov ecx, esi
call fcn.10030430
push ecx
lea eax, [ebp - 0x13c]
push eax
lea ecx, [ebp - 0x120]
call fcn.10030e80
lea eax, [ebp - 0x110]
push eax
lea ecx, [edi + 0x10]
call fcn.100300b0
push eax
lea ecx, [ebp - 0x120]
call fcn.10030e30
test al, al
jne 0x10058510
lea eax, [edi + 0xc4]
mov ecx, edi
push eax
call fcn.10061be0
lea eax, [ebp - 0x10c]
push eax
lea ecx, [edi + 0x6c]
call fcn.10030410
lea eax, [ebp - 0x13c]
push eax
lea ecx, [edi + 0x6c]
call fcn.100300b0
push eax
lea ecx, [ebp - 0x10c]
call fcn.10030e30
test al, al
je 0x10058a7f
jmp 0x10058600
lea ecx, [ebp - 0x10c]
call fcn.10030e20
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.10030420
test al, al
jne 0x10058690
mov ecx, dword [ebp - 0x110]
call fcn.100305c0
mov esi, dword [ebp + 0xc]
mov edx, dword [eax]
cmp esi, edx
jae 0x1005865f
xor ecx, ecx
add esi, 0x2710
adc ecx, ecx
test ecx, ecx
ja 0x10058a49
jb 0x1005865f
cmp esi, edx
jae 0x10058a49
mov ecx, dword [edi + 0x6f0]
add eax, 4
push 2
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.1001f570
push eax
lea ecx, [ebp - 0x150]
call fcn.10030dc0
mov ecx, dword [ebp - 0x110]
call fcn.10030430
jmp 0x10058a49
cmp byte [esi + 4], 0
je 0x10058a49
cmp byte [esi + 0x74], 0
je 0x10058a49
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.100300b0
lea eax, [ebp - 0x130]
push eax
lea ecx, [esi + 0x68]
call fcn.100300c0
push eax
lea ecx, [ebp - 0x128]
call fcn.10030e30
test al, al
je 0x10058796
jmp 0x100586f0
lea ecx, [ebp - 0x128]
call fcn.10005800
mov ecx, dword [esi + 8]
mov eax, dword [eax + 4]
add eax, ecx
cmp eax, dword [esi + 0xc]
jbe 0x1005870d
cmp eax, dword [ebp + 0xc]
jbe 0x10058741
push ecx
lea eax, [ebp - 0x110]
push eax
lea ecx, [ebp - 0x128]
call fcn.10030e60
lea eax, [ebp - 0x130]
push eax
lea ecx, [esi + 0x68]
call fcn.100300c0
push eax
lea ecx, [ebp - 0x128]
call fcn.10030e30
test al, al
jne 0x100586f0
jmp 0x10058796
mov eax, dword [ebp - 0x12c]
lea ecx, [ebp - 0x128]
mov dword [ebp - 0x24], eax
call fcn.10005800
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.1001f570
push eax
lea ecx, [ebp - 0x150]
call fcn.10030dc0
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.100300b0
lea eax, [ebp - 0x174]
push eax
lea ecx, [esi + 0x30]
call fcn.100300c0
push eax
lea ecx, [ebp - 0x134]
call fcn.10030e30
test al, al
je 0x10058844
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.10005800
mov eax, dword [eax + 4]
add eax, esi
cmp eax, dword [ebp - 0x110]
jbe 0x10058809
mov esi, dword [ebp + 0xc]
cmp eax, esi
jbe 0x100588bd
mov esi, dword [ebp - 0x124]
push ecx
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x134]
call fcn.10030e60
mov ecx, dword [ebp - 0x120]
lea eax, [ebp - 0x174]
push eax
call fcn.100300c0
push eax
lea ecx, [ebp - 0x134]
call fcn.10030e30
test al, al
jne 0x100587e0
mov esi, dword [ebp - 0x118]
cmp byte [ebp - 0x119], 0
jne 0x10058a12
lea eax, [esi + 0x78]
mov ecx, eax
mov dword [ebp - 0x120], eax
call fcn.100300e0
test al, al
jne 0x10058a49
cmp byte [esi + 0x1c], al
jne 0x10058883
push dword [ebp - 0x16c]
mov ecx, edi
call fcn.1005d6a0
test al, al
jne 0x10058a49
lea ecx, [esi + 0x78]
call fcn.10005800
mov eax, dword [eax + 4]
add eax, dword [esi + 8]
mov esi, dword [ebp + 0xc]
cmp eax, esi
ja 0x10058a49
mov eax, dword [ebp - 0x118]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x110], eax
cmp eax, 0xffffffff
jne 0x10058910
xor eax, eax
mov dword [ebp - 0x114], eax
jmp 0x1005899a
mov eax, dword [ebp - 0x12c]
lea ecx, [ebp - 0x134]
mov dword [ebp - 0x48], eax
call fcn.10005800
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.1001f570
push eax
lea ecx, [ebp - 0x150]
call fcn.10030dc0
jmp 0x10058a15
mov ecx, dword [ebp - 0x120]
call fcn.100300d0
mov ecx, dword [ebp - 0x110]
dec eax
cmp ecx, eax
jne 0x10058947
mov ecx, dword [ebp - 0x118]
mov eax, esi
sub eax, dword [ecx + 0xc]
cmp eax, dword [ecx + 0x84]
jb 0x10058a49
xor eax, eax
mov dword [ebp - 0x114], eax
jmp 0x1005899a
lea eax, [ecx + 1]
mov ecx, dword [ebp - 0x120]
push eax
mov dword [ebp - 0x114], eax
call fcn.100300f0
push dword [ebp - 0x110]
mov ecx, dword [ebp - 0x120]
mov esi, eax
call fcn.100300f0
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 0x10058a49
mov eax, dword [ebp - 0x114]
cmp eax, 0xffffffff
je 0x10058a49
mov ecx, dword [ebp - 0x120]
push eax
call fcn.100300f0
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.1001f570
push eax
lea ecx, [ebp - 0x150]
call fcn.10030dc0
mov eax, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x114]
mov dword [eax + 0x10], ecx
jmp 0x10058a15
mov esi, dword [ebp + 0xc]
lea ecx, [ebp - 0x150]
call fcn.10030db0
mov edx, eax
mov eax, dword [ebp - 0x118]
cmp dword [edx + 0xc], 1
sete cl
mov byte [eax + 0x1c], cl
test cl, cl
je 0x10058a46
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.10030e80
lea eax, [ebp - 0x13c]
push eax
lea ecx, [edi + 0x6c]
call fcn.100300b0
push eax
lea ecx, [ebp - 0x10c]
call fcn.10030e30
test al, al
jne 0x10058600
lea eax, [edi + 0xc4]
mov ecx, edi
push eax
call fcn.1005cbd0
lea eax, [ebp - 0x10c]
push eax
lea ecx, [edi + 0x20]
call fcn.10030410
lea eax, [ebp - 0x16c]
push eax
lea ecx, [edi + 0x20]
call fcn.100300b0
push eax
lea ecx, [ebp - 0x10c]
call fcn.10030e30
test al, al
je 0x10058b7a
nop
lea ecx, [ebp - 0x10c]
call fcn.10030e20
mov dword [ebp - 0x13c], eax
lea esi, [eax + 0x14]
mov ecx, esi
call fcn.10030420
test al, al
jne 0x10058b44
lea eax, [ebp - 0x158]
mov ecx, esi
push eax
call fcn.10030410
mov ecx, eax
call fcn.10030e50
mov edx, eax
mov eax, dword [ebp + 0xc]
cmp eax, dword [edx]
jae 0x10058b10
xor ecx, ecx
add eax, 0x2710
adc ecx, ecx
test ecx, ecx
ja 0x10058b44
jb 0x10058b10
cmp eax, dword [edx]
jae 0x10058b44
mov eax, dword [ebp - 0x13c]
cmp byte [eax + 0x34], 0
lea eax, [edx + 4]
jne 0x10058b31
mov ecx, dword [edi + 0x6f0]
push 2
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.1001f570
push eax
lea ecx, [ebp - 0x150]
call fcn.10030dc0
mov ecx, esi
call fcn.10030430
push ecx
lea eax, [ebp - 0x174]
push eax
lea ecx, [ebp - 0x10c]
call fcn.10030e80
lea eax, [ebp - 0x16c]
push eax
lea ecx, [edi + 0x20]
call fcn.100300b0
push eax
lea ecx, [ebp - 0x10c]
call fcn.10030e30
test al, al
jne 0x10058ac0
lea esi, [edi + 0xc4]
mov ecx, edi
push esi
call fcn.1005cde0
push esi
mov ecx, edi
call fcn.1005c440
lea eax, [ebp - 0x10c]
push eax
lea ecx, [edi + 8]
call fcn.10030410
lea eax, [ebp - 0x16c]
push eax
lea ecx, [edi + 8]
call fcn.100300b0
push eax
lea ecx, [ebp - 0x10c]
call fcn.10030e30
test al, al
je 0x10058c4f
lea ecx, [ebp - 0x10c]
call fcn.10030e20
mov dword [ebp - 0x13c], eax
lea esi, [eax + 0x10]
mov ecx, esi
call fcn.10030420
test al, al
jne 0x10058c19
mov ecx, esi
call fcn.100305c0
mov ecx, dword [ebp - 0x13c]
cmp byte [ecx + 0x48], 0
jne 0x10058c06
mov ecx, dword [edi + 0x6f0]
push 2
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.1001f570
push eax
lea ecx, [ebp - 0x150]
call fcn.10030dc0
mov ecx, esi
call fcn.10030430
push ecx
lea eax, [ebp - 0x158]
push eax
lea ecx, [ebp - 0x10c]
call fcn.10030e80
lea eax, [ebp - 0x16c]
push eax
lea ecx, [edi + 8]
call fcn.100300b0
push eax
lea ecx, [ebp - 0x10c]
call fcn.10030e30
test al, al
jne 0x10058bc2
cmp dword [edi + 0xa0], 0
je 0x10058d44
lea ecx, [edi + 0x6e4]
call fcn.10030420
test al, al
jne 0x10058d44
lea eax, [ebp - 0x10c]
push eax
lea ecx, [ebp - 0x150]
call fcn.100300b0
lea eax, [ebp - 0x13c]
push eax
lea ecx, [ebp - 0x150]
call fcn.100300c0
push eax
lea ecx, [ebp - 0x10c]
call fcn.10030e30
test al, al
je 0x10058d44
jmp 0x10058cb0
lea ecx, [ebp - 0x10c]
call fcn.10005800
mov esi, eax
movzx ecx, byte [esi]
push ecx
mov ecx, edi
call fcn.1005d620
test al, al
je 0x10058d0b
cmp dword [esi + 0xc], 1
jne 0x10058d0b
mov ecx, dword [edi + 0x6f0]
lea eax, [ebp - 0x60]
push eax
call fcn.10054790
push 0x100c1a0c
lea ecx, [ebp - 0x60]
call fcn.10005190
push eax
call dword [sym.imp.MSVCR120.dll_wcsstr]
add esp, 8
test eax, eax
je 0x10058d03
mov byte [edi + 0xa5], 1
lea ecx, [ebp - 0x60]
call fcn.10004eb0
push ecx
lea eax, [ebp - 0x158]
push eax
lea ecx, [ebp - 0x10c]
call fcn.10030e60
lea eax, [ebp - 0x13c]
push eax
lea ecx, [ebp - 0x150]
call fcn.100300c0
push eax
lea ecx, [ebp - 0x10c]
call fcn.10030e30
test al, al
jne 0x10058cb0
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.1005cee0
test byte [0x100ec5d4], 7
jne 0x10058e3f
cmp byte [edi + 0xc6], 0
je 0x10058d91
push 2
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
jne 0x10058d91
push 2
mov ecx, edi
call fcn.10054730
cmp byte [edi + 0xc9], 0
je 0x10058db5
push 5
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
jne 0x10058db5
push 5
mov ecx, edi
call fcn.10054730
cmp byte [edi + 0xca], 0
je 0x10058dd9
push 6
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
jne 0x10058dd9
push 6
mov ecx, edi
call fcn.10054730
cmp dword [edi + 0x8c], 0
je 0x10058e3f
xor ecx, ecx
mov esi, 0x8000
mov dword [ebp - 0x10c], ecx
nop
mov eax, dword [edi + 0x8c]
movzx eax, byte [eax + ecx + 0x13]
cmp byte [edi + eax + 0xc4], 0
je 0x10058e30
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
mov ecx, dword [ebp - 0x10c]
test si, ax
jne 0x10058e30
mov eax, dword [edi + 0x8c]
movzx eax, byte [eax + ecx + 0x13]
mov ecx, edi
push eax
call fcn.10054730
mov ecx, dword [ebp - 0x10c]
inc ecx
mov dword [ebp - 0x10c], ecx
cmp ecx, 4
jl 0x10058df0
mov esi, dword [ebp + 0xc]
mov ecx, dword [edi + 0xbc]
test ecx, ecx
je 0x10058ec5
add ecx, 0x60
call fcn.10030420
test al, al
jne 0x10058ec5
lea esp, [esp]
mov ecx, dword [edi + 0xbc]
add ecx, 0x60
call fcn.100305c0
mov dword [ebp - 0x13c], eax
mov eax, dword [eax]
cmp esi, eax
jae 0x10058e90
xor ecx, ecx
mov edx, esi
add edx, 0x2710
adc ecx, ecx
test ecx, ecx
ja 0x10058ec5
jb 0x10058e90
cmp edx, eax
jae 0x10058ec5
mov eax, dword [ebp - 0x13c]
mov ecx, dword [ebp - 0x170]
add eax, 4
push eax
call fcn.10030dc0
mov ecx, dword [edi + 0xbc]
add ecx, 0x60
call fcn.10030430
mov ecx, dword [edi + 0xbc]
add ecx, 0x60
call fcn.10030420
test al, al
je 0x10058e60
cmp dword [edi + 0xc0], 0
je 0x10058f80
mov ecx, edi
call fcn.100624c0
lea eax, [edi + 0xc4]
mov ecx, edi
push eax
call fcn.10062550
mov esi, dword [edi + 0xc0]
lea eax, [ebp - 0x10c]
push eax
lea ecx, [esi + 0x28]
call fcn.10030410
lea eax, [ebp - 0x13c]
push eax
lea ecx, [esi + 0x28]
call fcn.100300b0
push eax
lea ecx, [ebp - 0x10c]
call fcn.10030e30
test al, al
je 0x10058f6f
jmp 0x10058f20
lea ecx, [ebp - 0x10c]
call fcn.10030e50
mov ecx, dword [ebp - 0x170]
push eax
call fcn.10030dc0
push ecx
lea eax, [ebp - 0x158]
push eax
lea ecx, [ebp - 0x10c]
call fcn.10030ec0
mov ecx, dword [edi + 0xc0]
lea eax, [ebp - 0x13c]
push eax
add ecx, 0x28
call fcn.100300b0
push eax
lea ecx, [ebp - 0x10c]
call fcn.10030e30
test al, al
jne 0x10058f20
mov ecx, dword [edi + 0xc0]
add ecx, 0x28
call fcn.100304b0
mov esi, dword [ebp + 0xc]
add edi, 0x6cc
lea eax, [ebp - 0x118]
push eax
mov ecx, edi
mov dword [ebp - 0x110], edi
call fcn.10030410
lea eax, [ebp - 0x13c]
mov ecx, edi
push eax
call fcn.100300b0
push eax
lea ecx, [ebp - 0x118]
call fcn.10030e30
test al, al
je 0x10059051
lea esp, [esp]
lea ecx, [ebp - 0x118]
call fcn.10030e50
mov edi, dword [eax]
cmp esi, edi
jae 0x10058ffc
xor ecx, ecx
mov edx, esi
add edx, 0x2710
adc ecx, ecx
test ecx, ecx
jb 0x10058ffc
ja 0x10058fe7
cmp edx, edi
jb 0x10058ffc
push ecx
lea eax, [ebp - 0x158]
push eax
lea ecx, [ebp - 0x118]
call fcn.10030ec0
jmp 0x1005902b
mov ecx, dword [ebp - 0x170]
add eax, 4
push eax
call fcn.10030dc0
push dword [ebp - 0x118]
mov ecx, dword [ebp - 0x110]
lea eax, [ebp - 0x16c]
push eax
call fcn.10031100
mov eax, dword [eax]
mov dword [ebp - 0x118], eax
mov ecx, dword [ebp - 0x110]
lea eax, [ebp - 0x13c]
push eax
call fcn.100300b0
push eax
lea ecx, [ebp - 0x118]
call fcn.10030e30
test al, al
jne 0x10058fc0
cmp byte [ebp + 8], 0
jne 0x1005905d
inc dword [0x100ec5d4]
lea ecx, [ebp - 0x150]
call fcn.10010cf0
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.100ab974
mov esp, ebp
pop ebp
ret 0xc