Function at 0x5158a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x68
push ebx
push ecx
push edx
push esi
push edi
mov esi, eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x14], ebx
mov edi, ecx
mov dword [esp + 0x30], edi
mov eax, edi
call fcn.004c2a1c
mov dword [esp + 0x78], eax
mov eax, dword [esi + 0x27]
lea eax, [esi + eax]
mov dword [esp + 0x18], eax
cmp dword [esi + 0x196], 0
jne 0x5158e2
jmp 0x515915
cmp ebx, 0x7c27
jle 0x5158ec
jmp 0x515915
cmp ebx, 0x7c24
jge 0x5158d8
jmp 0x515915
sub ebx, 0x14
mov dword [esp + 0x14], ebx
mov eax, dword [esi + 0x196]
lea eax, [eax + 0x10]
mov dword [esp + 0x18], eax
cmp dword [eax], 0
jne 0x515915
mov eax, dword [esi + 0x196]
mov ebx, 0
call fcn.00530458
mov ebx, dword [esp + 0x14]
mov eax, ebx
cmp eax, 0x7c10
je 0x51593e
cmp eax, 0x7c11
je 0x51593e
cmp eax, 0x7c13
je 0x51593e
cmp eax, 0x7c12
je 0x51593e
cmp eax, 0x7a3a
jne 0x5159a3
mov eax, esi
mov ebx, dword [esi + 4]
mov eax, dword [esp + 0x34]
call dword [ebx]
mov ebx, eax
mov edi, dword [esp + 0x18]
mov eax, dword [edi]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
call fcn.00518304
mov ecx, eax
mov eax, esi
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x34]
call dword [edx + 4]
cmp ecx, 0
jne 0x51597c
mov eax, 0
jmp 0x516438
mov eax, dword [edi]
call fcn.00518694
mov dword [edi], ecx
mov eax, dword [esi + 0x27]
lea eax, [esi + eax]
cmp edi, eax
je 0x516433
mov eax, dword [esi + 0x196]
call fcn.005303f8
jmp 0x516433
cmp eax, 0x7a4c
jne 0x515a04
cmp dword [esi + 0x186], 0
je 0x5159c7
mov ebx, dword [esi + 0x186]
mov eax, ebx
call fcn.005166bc
mov eax, ebx
call fcn.004c51e8
cmp dword [esp + 0x78], 0
je 0x5159f5
mov eax, 0x18
call fcn.004c51f0
mov ecx, eax
cmp ecx, 0
je 0x5159ea
mov eax, ecx
mov ebx, dword [esp + 0x78]
call fcn.0051345c
mov dword [esi + 0x186], ecx
jmp 0x516433
mov dword [esi + 0x186], 0
jmp 0x516433
cmp eax, 0x7a43
pushfd
mov edx, esi
add edx, 0xa3
mov dword [esp + 0x20], edx
popfd
jne 0x515a46
mov eax, esi
mov ebx, dword [esp + 0x78]
call fcn.00513874
mov ebx, eax
cmp esi, 0
jne 0x515a2f
mov eax, esi
jmp 0x515a31
mov eax, edx
mov ecx, dword [esi + 0xdf]
mov edx, 0
call fcn.0052f404
jmp 0x516433
cmp eax, 0x7a44
jne 0x515a7a
mov eax, esi
mov ebx, dword [esp + 0x78]
call fcn.00513850
mov ecx, eax
cmp esi, 0
jne 0x515a63
mov eax, esi
jmp 0x515a65
mov eax, edx
mov ebx, dword [esi + 0xdb]
mov edx, 0
call fcn.0052f404
jmp 0x516433
cmp eax, 0x7cbb
jne 0x515aa6
cmp esi, 0
jne 0x515a8a
mov eax, esi
jmp 0x515a8c
mov eax, edx
push 0
mov ebx, 0x114
mov ecx, 4
mov edx, dword [esp + 0x7c]
call fcn.0052f694
jmp 0x516433
cmp eax, 0x7c9e
jne 0x515ad2
cmp esi, 0
jne 0x515ab6
mov eax, esi
jmp 0x515ab8
mov eax, edx
push 0
mov ebx, 0x115
mov ecx, 4
mov edx, dword [esp + 0x7c]
call fcn.0052f694
jmp 0x516433
cmp eax, 0x7c93
jne 0x515b36
cmp dword [0x78df29], 0
jne 0x516433
cmp dword [esi + 0x1f4], 0
je 0x515b00
mov eax, dword [esi + 0x1f4]
mov ebx, dword [esp + 0x78]
call fcn.00539dc0
jmp 0x515b0f
mov eax, dword [esp + 0x78]
call fcn.00539e40
mov dword [esi + 0x1f4], eax
cmp dword [esi + 0x1f4], 0
je 0x516433
push 0
push 0
push 0x30f
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_SendMessageA
jmp 0x516433
cmp eax, 0x7cb5
jne 0x515b58
mov eax, edi
call fcn.004c2a1c
push eax
push 0xfffffffffffffffc
mov eax, dword [esi + 0xfb]
push eax
call sub.USER32.dll_SetWindowLongA
jmp 0x516433
cmp eax, 0x7c92
jne 0x515b84
cmp dword [esp + 0x78], 0
je 0x515b75
or dword [esi + 0x1ce], 0x400
jmp 0x516433
and dword [esi + 0x1ce], 0xfffffbff
jmp 0x516433
cmp eax, 0x7c9a
jne 0x515bab
mov dword [esi + 0x166], 0
cmp dword [esp + 0x78], 0
setne al
movzx eax, al
mov dword [esi + 0x130], eax
jmp 0x516433
cmp eax, 0x7c91
jne 0x515bd1
cmp dword [esp + 0x78], 0
je 0x515bc5
or dword [esi + 0x1ce], 2
jmp 0x516433
and dword [esi + 0x1ce], 0xfffffffd
jmp 0x516433
cmp eax, 0x7c9d
pushfd
lea ecx, [esp + 0x7c]
mov dword [esp + 0x2c], ecx
popfd
jne 0x515c73
mov ebx, esi
mov dword [esp + 0x2c], ebx
cmp ebx, 0
je 0x515c2a
mov eax, ebx
mov ecx, dword [ebx + 4]
mov eax, dword [esp + 0x2c]
call dword [ecx + 0x5c]
cmp eax, 0
jne 0x515c2a
mov eax, ebx
mov ecx, dword [ebx + 4]
mov eax, dword [esp + 0x2c]
call dword [ecx + 0x60]
cmp eax, 0
jne 0x515c2a
mov ebx, dword [ebx + 0x1b2]
mov dword [esp + 0x2c], ebx
jmp 0x515bec
cmp dword [0x5677e0], 0
jne 0x515c5a
jmp 0x515c7a
cmp dword [esp + 0x78], 0
setne al
movzx eax, al
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x78]
cmp dword [esi + 0x134], eax
je 0x515c7a
mov eax, dword [esp + 0x78]
mov dword [esi + 0x134], eax
cmp dword [esi + 0x120], 0
jne 0x515c1f
jmp 0x515c7a
cmp dword [esi + 0x134], 0
sete al
movzx ebx, al
mov eax, dword [0x5677e0]
call fcn.005115d8
jmp 0x515c7a
cmp eax, 0x7cad
jne 0x515cb4
mov dword [esp + 0x74], 0x80000000
push 0xfffffffffffffff0
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_GetWindowLongA
lea ebx, [esp + 0x74]
push ebx
push eax
push 0
mov eax, esi
mov ecx, ebx
mov edx, dword [esp + 0x34]
call fcn.00515560
mov eax, dword [esp + 0x78]
mov dword [esi + 0x138], eax
jmp 0x516433
cmp eax, 0x7cae
jne 0x515cfe
mov dword [esp + 0x70], 0x80000000
push 0xfffffffffffffff0
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_GetWindowLongA
push dword [esp + 0x28]
push eax
push 0
mov eax, esi
lea ecx, [esp + 0x7c]
mov dword [esp + 0x30], ecx
mov ebx, ecx
mov edx, ecx
mov ebx, dword [esp + 0x30]
call fcn.00515560
mov eax, dword [esp + 0x78]
mov dword [esi + 0x13c], eax
jmp 0x516433
cmp eax, 0x7caf
jne 0x515d3f
mov dword [esp + 0x6c], 0x80000000
push 0xfffffffffffffff0
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_GetWindowLongA
lea ebx, [esp + 0x6c]
push ebx
push eax
push 0
mov eax, esi
mov ecx, ebx
mov edx, dword [esp + 0x34]
call fcn.00515560
mov eax, dword [esp + 0x78]
mov dword [esi + 0x140], eax
jmp 0x516433
cmp eax, 0x7cb0
jne 0x515d89
mov dword [esp + 0x68], 0x80000000
push 0xfffffffffffffff0
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_GetWindowLongA
push dword [esp + 0x28]
push eax
push 0
mov eax, esi
lea ecx, [esp + 0x74]
mov dword [esp + 0x2c], ecx
mov ebx, ecx
mov edx, ecx
mov ebx, dword [esp + 0x2c]
call fcn.00515560
mov eax, dword [esp + 0x78]
mov dword [esi + 0x144], eax
jmp 0x516433
cmp eax, 0x7c97
jne 0x515da0
mov eax, esi
mov ebx, dword [esp + 0x78]
call fcn.00511360
jmp 0x516433
cmp eax, 0x7c06
jne 0x515e3c
mov ebx, esi
mov ecx, 0x10
mov edx, dword [esp + 0x78]
call fcn.005291c8
cmp dword [esp + 0x78], 0
je 0x516433
lea eax, [esp + 0x38]
push eax
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_GetWindowRect
mov dword [esp + 0x64], 0x80000000
mov eax, dword [esp + 0x64]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x40]
sub eax, dword [esp + 0x38]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x44]
sub eax, dword [esp + 0x3c]
mov dword [esp + 0x58], eax
lea eax, [esp + 0x58]
push eax
mov eax, esi
lea ebx, [esp + 0x64]
lea ecx, [esp + 0x68]
lea edx, [esp + 0x60]
call fcn.005153a8
push dword [esp + 0x64]
push 0
push 0
push 0x15
mov eax, esi
mov ebx, dword [eax + 0x83]
mov ecx, 0
mov edx, dword [esp + 0x70]
call fcn.00511320
jmp 0x516433
cmp eax, 0x7c86
jne 0x515eb7
cmp dword [esi + 0x19a], 0
je 0x515e69
mov eax, dword [esi + 0x19a]
push eax
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_KillTimer
mov dword [esi + 0x19a], 0
mov eax, dword [esp + 0x78]
mov dword [esi + 0x19e], eax
cmp dword [esp + 0x78], 0
je 0x516433
push 0
imul eax, dword [esi + 0x19e], 0xa
push eax
push 1
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_SetTimer
mov dword [esi + 0x19a], eax
jmp 0x516433
mov eax, esi
mov ebx, dword [esi + 4]
mov eax, dword [esp + 0x34]
call dword [ebx + 0x5c]
cmp eax, 0
jne 0x515f1d
jmp 0x515f45
cmp eax, 0x7c6f
jne 0x515ffb
push 0xfffffffffffffff0
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_GetWindowLongA
mov edi, eax
cmp dword [esp + 0x78], 0
pushfd
mov eax, edi
and eax, 0x1000000
popfd
je 0x515f7a
cmp eax, 0
jne 0x516433
push 0
push 0
push 0
push 0x57
mov eax, esi
mov ebx, dword [esi + 0xfb]
mov eax, dword [esp + 0x44]
mov ecx, 0
mov edx, 0
call fcn.00511320
cmp dword [0x78ded3], 0
jne 0x515ea1
jmp 0x515f45
push 0
push 0xf030
push 0x9999
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_SendMessageA
push 0xfffffffffffffff0
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_GetWindowLongA
mov edi, eax
and edi, 0x1000000
cmp edi, 0
jne 0x516433
push 3
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_ShowWindow
jmp 0x516433
mov eax, esi
mov ebx, dword [esi + 4]
mov eax, dword [esp + 0x34]
call dword [ebx + 0x5c]
cmp eax, 0
jne 0x515fb1
jmp 0x515fd9
cmp eax, 0
je 0x516433
push 0
push 0
push 0
push 0x57
mov eax, esi
mov ebx, dword [esi + 0xfb]
mov eax, dword [esp + 0x44]
mov ecx, 0
mov edx, 0
call fcn.00511320
cmp dword [0x78ded3], 0
jne 0x515f67
jmp 0x515fd9
push 0
push 0xf120
push 0x9999
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_SendMessageA
push 0xfffffffffffffff0
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_GetWindowLongA
mov edi, eax
and edi, 0x1000000
cmp edi, 0
je 0x516433
push 9
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_ShowWindow
jmp 0x516433
cmp eax, 0x7c69
jne 0x51606e
push 0
push 0
push 0
push 0x57
mov eax, esi
mov ebx, dword [esi + 0xfb]
mov eax, dword [esp + 0x44]
mov ecx, 0
mov edx, 0
call fcn.00511320
cmp dword [esp + 0x78], 0
je 0x51603f
push 7
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_ShowWindow
jmp 0x516433
push 0xfffffffffffffff0
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_GetWindowLongA
and eax, 0x20000000
cmp eax, 0
je 0x516433
push 4
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_ShowWindow
jmp 0x516433
cmp eax, 0x7c73
jne 0x51609c
mov ebx, dword [esi + 0x1a6]
mov eax, 0x78d9a4
call fcn.005187fc
mov ebx, edi
mov eax, 0x78d9a4
call fcn.00518b84
mov dword [esi + 0x1a6], eax
jmp 0x516433
cmp eax, 0x7c66
jne 0x5160dd
mov ebx, dword [esi + 0x1aa]
mov eax, 0x78d9c0
call fcn.005187fc
mov ebx, edi
mov eax, 0x78d9c0
call fcn.00518b84
mov dword [esi + 0x1aa], eax
jmp 0x516433
cmp byte [edi], 0
je 0x516126
mov ebx, edi
mov eax, 0x78dbe8
call fcn.00518b84
jmp 0x51612b
cmp eax, 0x7c5d
jne 0x516132
mov eax, edi
mov ebx, 0
call fcn.005342b0
push eax
push 0xfffffffffffffff4
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_SetClassLongA
cmp eax, 0
je 0x51610a
push eax
call sub.USER32.dll_DestroyCursor
lea ecx, [esi + 0x16a]
cmp dword [ecx], 0
je 0x516121
mov ebx, dword [ecx]
mov eax, 0x78dbe8
call fcn.005187fc
cmp edi, 0
jne 0x5160ca
mov eax, 0
mov dword [ecx], eax
jmp 0x516433
cmp eax, 0x7c67
pushfd
cmp dword [esp + 0x7c], 0
setne cl
movzx ecx, cl
popfd
jne 0x516153
mov dword [esi + 0xe3], ecx
mov ecx, 1
jmp 0x516165
cmp eax, 0x7c8b
jne 0x516187
mov dword [esi + 0xe7], ecx
mov ecx, 2
mov ebx, esi
mov edx, dword [esp + 0x78]
call fcn.005291c8
cmp esi, 0
jne 0x516179
mov eax, esi
jmp 0x51617d
mov eax, dword [esp + 0x1c]
call fcn.0052f868
jmp 0x516433
cmp eax, 0x7c1a
jne 0x516195
mov ebx, 0x20
jmp 0x5161af
cmp eax, 0x7c1b
jne 0x5161a3
mov ebx, 0x60
jmp 0x5161af
cmp eax, 0x7c19
jne 0x5161c9
mov ebx, 0x40
and dword [esi + 0x1ce], 0xffffff9f
jmp 0x51627c
cmp dword [0x78ded3], 0
jne 0x5161fb
jmp 0x51627c
cmp eax, 0x7c42
jne 0x51622a
mov ebx, 0x800
push 0xfffffffffffffff0
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_GetWindowLongA
mov ecx, eax
mov eax, esi
mov edx, dword [esi + 4]
mov eax, dword [esp + 0x34]
call dword [edx + 0x5c]
cmp eax, 0
jne 0x5161bb
jmp 0x51627c
cmp dword [esp + 0x78], 0
je 0x516216
or ecx, 1
push ecx
push 0xfffffffffffffff0
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_SetWindowLongA
jmp 0x51627c
and ecx, 0xfffffffe
push ecx
push 0xfffffffffffffff0
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_SetWindowLongA
jmp 0x51627c
cmp eax, 0x7c6e
jne 0x516238
mov ebx, pe_nt_image_headers32
jmp 0x51627c
cmp eax, 0x7c64
jne 0x516270
mov ebx, 0x2000
push dword [esp + 0x78]
push 0x512528
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_EnumChildWindows
push 0x485
push 0
push 0
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_RedrawWindow
jmp 0x51627c
cmp eax, 0x7c84
jne 0x5162a5
mov ebx, 0x1000
cmp dword [esp + 0x78], 0
je 0x51638c
or dword [esi + 0x1ce], ebx
jmp 0x516394
cmp byte [edi], 0
je 0x5162f3
mov ebx, edi
mov eax, 0x78dbe8
call fcn.00518b84
jmp 0x5162f8
cmp eax, 0x7c68
jne 0x5162ff
mov eax, edi
mov ebx, 0
call fcn.00534398
cmp eax, 0
je 0x5162d7
push eax
push 0xfffffffffffffff2
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_SetClassLongA
cmp eax, 0
je 0x5162d7
push eax
call sub.USER32.dll_DestroyIcon
lea ecx, [esi + 0x16e]
cmp dword [ecx], 0
je 0x5162ee
mov ebx, dword [ecx]
mov eax, 0x78dbe8
call fcn.005187fc
cmp edi, 0
jne 0x516292
mov eax, 0
mov dword [ecx], eax
jmp 0x516394
cmp eax, 0x7cbc
jne 0x516342
mov edx, dword [esp + 0x34]
mov eax, edx
mov ecx, dword [esp + 0x30]
call fcn.00516970
mov ecx, eax
cmp dword [edx + 0x118], 0
je 0x51633b
mov eax, dword [edx + 0x118]
movzx ebx, word [edx + 0x11]
and ebx, 2
cmp ebx, 2
sete bl
movzx ebx, bl
call fcn.0051edf0
mov eax, ecx
jmp 0x516438
cmp esi, 0
jne 0x51634b
mov edx, esi
jmp 0x51634b
push esi
mov eax, esi
add eax, 0x10b
mov ecx, edi
call fcn.0046367c
cmp eax, 0
je 0x51637e
push 0x85
push 0
push 0
mov eax, dword [esi + 0xfb]
push eax
call sub.USER32.dll_RedrawWindow
mov eax, 1
jmp 0x516438
mov eax, esi
mov ecx, edi
call fcn.00516970
jmp 0x516438
not ebx
and dword [esi + 0x1ce], ebx
push 0xfffffffffffffff0
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_GetWindowLongA
mov ebx, eax
mov eax, esi
call fcn.00515284
mov edi, eax
mov eax, ebx
and eax, 0xff30ff7f
or edi, eax
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_GetWindowTextLengthA
cmp eax, 0
je 0x5163cd
or edi, 0xc00000
cmp edi, ebx
je 0x516433
push edi
push 0xfffffffffffffff0
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_SetWindowLongA
push 0x401
push 0
push 0
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_RedrawWindow
lea eax, [esp + 0x48]
push eax
mov eax, dword [esi + 0x83]
push eax
call sub.USER32.dll_GetWindowRect
push 0
mov eax, dword [esp + 0x54]
sub eax, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0x5c]
sub eax, dword [esp + 0x54]
push eax
push 0x36
mov eax, esi
mov ebx, dword [eax + 0x83]
mov ecx, 0
mov edx, 0
call fcn.00511320
mov eax, 1
pop edi
pop esi
pop edx
pop ecx
pop ebx
add esp, 0x68
ret