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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffff64
mov edi, edx
mov ebp, eax
xor ebx, ebx
test edi, edi
je case.0x59e1c0.0
mov eax, dword [ebp]
cmp eax, 0x200
jg 0x59e23d
je 0x59e2dd
cmp eax, 0xf
jg 0x59e1f7
je 0x59f4b8
cmp eax, 0xb
ja case.0x59e1c0.0
jmp dword [eax*4 + 0x59e1c7]
cmp eax, 0x7b
jg 0x59e222
je 0x59e7eb
sub eax, 0x18
je 0x59f679
sub eax, 5
je 0x59ee0a
sub eax, 0x29
je 0x59f430
jmp case.0x59e1c0.0
sub eax, 0x81
je case.0x59e1c0.1
sub eax, 0xa7
je 0x59e793
jmp case.0x59e1c0.0
cmp eax, 0xb00b
jg 0x59e28e
je 0x59e844
cmp eax, 0x317
jg 0x59e277
je 0x59e6c9
sub eax, 0x201
je 0x59f858
dec eax
je 0x59f861
sub eax, 0xe
je 0x59ea25
jmp case.0x59e1c0.0
sub eax, 0xa100
je 0x59e2cd
sub eax, 0xf08
je 0x59ea59
jmp case.0x59e1c0.0
cmp eax, 0xb014
jg 0x59e2b4
je 0x59f1ef
sub eax, 0xb00c
je 0x59ee0a
sub eax, 7
je 0x59ee71
jmp case.0x59e1c0.0
sub eax, 0xb019
je 0x59e9ec
sub eax, 0x1e
je 0x59ee50
jmp case.0x59e1c0.0
mov eax, ebp
mov edx, edi
call fcn.0059ced0
mov ebx, eax
jmp case.0x59e1c0.0
mov eax, dword [0x63ebd0]
cmp dword [eax], 0
je 0x59e649
mov eax, dword [0x63ebd0]
mov eax, dword [eax]
cmp byte [eax + 0x89], 0
je 0x59e649
mov eax, dword [0x63ebd0]
mov eax, dword [eax]
cmp byte [eax + 0xb0], 0
je 0x59e649
mov eax, dword [0x63ebd0]
mov eax, dword [eax]
test byte [eax + 0x1c], 8
jne 0x59e649
cmp dword [edi + 0xb4], 0
je 0x59e649
mov eax, dword [edi + 0xb4]
test byte [eax + 0x1c], 8
jne 0x59e649
mov byte [esp + 8], 0
mov eax, dword [edi + 0xb4]
mov edx, dword [0x452e7c]
call fcn.00404a3c
test al, al
je 0x59e367
mov eax, dword [edi + 0xb4]
mov dword [esp + 0xc], eax
jmp 0x59e38e
mov eax, dword [edi + 0x70]
mov edx, dword [0x5a3c8c]
call fcn.00404a3c
test al, al
je 0x59e388
mov eax, dword [edi + 0x70]
mov eax, dword [eax + 0x2cc]
mov dword [esp + 0xc], eax
jmp 0x59e38e
xor eax, eax
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 0
je 0x59e517
mov eax, dword [esp + 0xc]
call fcn.0045b580
dec eax
test eax, eax
jl 0x59e517
inc eax
mov dword [esp + 0x14], eax
xor esi, esi
movsx eax, word [ebp + 8]
mov dword [esp], eax
movsx eax, word [ebp + 0xa]
mov dword [esp + 4], eax
mov edx, esi
mov eax, dword [esp + 0xc]
call fcn.0045b544
mov edx, dword [eax]
call dword [edx + 0x50]
test al, al
jne 0x59e50c
mov edx, esi
mov eax, dword [esp + 0xc]
call fcn.0045b544
lea edx, [esp + 0x64]
call fcn.00456ef4
lea eax, [esp + 0x64]
mov edx, esp
call fcn.004080c4
test al, al
je 0x59e50c
mov edx, esi
mov eax, dword [esp + 0xc]
call fcn.0045b544
cmp byte [eax + 0x8d], 0
je 0x59e50c
mov edx, esi
mov eax, dword [esp + 0xc]
call fcn.0045b544
cmp dword [eax + 0x84], 0
je 0x59e50c
mov edx, esi
mov eax, dword [esp + 0xc]
call fcn.0045b544
mov eax, dword [eax + 0x40]
sub dword [esp], eax
mov edx, esi
mov eax, dword [esp + 0xc]
call fcn.0045b544
mov eax, dword [eax + 0x44]
sub dword [esp + 4], eax
push esi
push edi
mov esi, ebp
lea edi, [esp + 0x4c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov ax, word [esp]
mov word [esp + 0x4c], ax
mov ax, word [esp + 4]
mov word [esp + 0x4e], ax
mov byte [esp + 8], 1
mov edx, esi
mov eax, dword [esp + 0xc]
call fcn.0045b544
mov edx, dword [0x63ebd0]
mov edx, dword [edx]
cmp eax, dword [edx + 0xc0]
je 0x59e50a
mov eax, dword [0x63f124]
mov eax, dword [eax]
call fcn.0047f94c
lea edx, [esp + 0x74]
xor eax, eax
call fcn.005727fc
mov eax, dword [esp + 0x74]
mov dword [esp], eax
lea edx, [esp + 0x74]
xor eax, eax
call fcn.005727fc
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
mov edx, esi
mov eax, dword [esp + 0xc]
call fcn.0045b544
mov edx, dword [0x63ebd0]
mov edx, dword [edx]
mov dword [edx + 0xc0], eax
mov eax, dword [0x63f124]
mov eax, dword [eax]
mov eax, dword [eax + 0x74]
push eax
mov edx, esi
mov eax, dword [esp + 0x10]
call fcn.0045b544
mov ecx, dword [eax + 0x84]
mov eax, dword [0x63ebd0]
mov eax, dword [eax]
lea edx, [esp + 4]
call fcn.004e5fd8
mov bl, 1
inc esi
dec dword [esp + 0x14]
jne 0x59e3b2
cmp byte [esp + 8], 0
jne 0x59e5ed
mov eax, dword [0x63ebd0]
mov eax, dword [eax]
cmp dword [eax + 0xc0], 0
je 0x59e5ed
mov eax, dword [0x63ebd0]
mov eax, dword [eax]
mov eax, dword [eax + 0xc0]
mov edx, dword [eax]
call dword [edx + 0x50]
test al, al
jne 0x59e5ed
mov eax, dword [0x63ebd0]
mov eax, dword [eax]
mov eax, dword [eax + 0xc0]
cmp eax, dword [esp + 0xc]
je 0x59e5e1
cmp dword [esp + 0xc], 0
je 0x59e5e1
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x8d], 0
je 0x59e5e1
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x84], 0
je 0x59e5e1
lea edx, [esp + 0x74]
xor eax, eax
call fcn.005727fc
mov eax, dword [esp + 0x74]
mov dword [esp], eax
lea edx, [esp + 0x74]
xor eax, eax
call fcn.005727fc
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
mov eax, dword [0x63ebd0]
mov eax, dword [eax]
mov edx, dword [esp + 0xc]
mov dword [eax + 0xc0], edx
mov eax, dword [0x63f124]
mov eax, dword [eax]
mov eax, dword [eax + 0x74]
push eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x84]
mov eax, dword [0x63ebd0]
mov eax, dword [eax]
lea edx, [esp + 4]
call fcn.004e5fd8
jmp 0x59e5ed
mov eax, dword [0x63ebd0]
mov eax, dword [eax]
call fcn.004e5878
cmp byte [esp + 8], 0
jne 0x59e649
mov eax, dword [0x63ebd0]
mov eax, dword [eax]
cmp byte [eax + 0x89], 0
je 0x59e649
mov eax, dword [0x63ebd0]
mov eax, dword [eax]
cmp byte [eax + 0xb0], 0
je 0x59e649
mov eax, dword [0x63ebd0]
mov eax, dword [eax]
cmp dword [eax + 0xc0], 0
je 0x59e649
mov eax, dword [0x63ebd0]
mov eax, dword [eax]
mov eax, dword [eax + 0xc0]
mov edx, dword [eax]
call dword [edx + 0x50]
test al, al
jne 0x59e649
mov eax, dword [0x63ebd0]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0xc0], edx
mov eax, edi
mov edx, dword [0x598660]
call fcn.00404a3c
test al, al
je case.0x59e1c0.0
xor edx, edx
mov eax, edi
call fcn.005a1bac
test al, al
je case.0x59e1c0.0
movsx eax, word [ebp + 8]
mov edx, dword [edi + 0xb4]
mov edx, dword [edx + 0x48]
sar edx, 1
jns 0x59e683
adc edx, 0
sub eax, edx
mov esi, edi
mov dword [esi + 0xcc], eax
movsx eax, word [ebp + 0xa]
mov edx, dword [edi + 0xb4]
mov edx, dword [edx + 0x4c]
sar edx, 1
jns 0x59e6a1
adc edx, 0
sub eax, edx
mov dword [esi + 0xd0], eax
lea eax, [esi + 0xb8]
call fcn.004126f4
mov byte [edi + 0xad], 1
mov dl, 1
mov eax, esi
call fcn.0054bf78
jmp case.0x59e1c0.0
mov dl, 1
mov eax, dword [edi + 0xb4]
call fcn.00573190
xor edx, edx
mov eax, edi
call fcn.0059caa0
test al, al
jne case.0x59e1c0.0
cmp dword [ebp + 4], 0
je case.0x59e1c0.0
mov eax, dword [edi + 0xb4]
mov edx, dword [0x452e7c]
call fcn.00404a3c
test al, al
je case.0x59e1c0.0
push 0xffffffffffffffec
mov eax, dword [edi + 0xb4]
call fcn.0045f528
push eax
call sub.user32.dll_GetWindowLongA
test ah, 2
je 0x59e729
mov esi, 2
jmp 0x59e72b
xor esi, esi
lea ecx, [esp + 0x74]
mov edx, esi
mov eax, esi
call fcn.004080a4
lea eax, [esp + 0x74]
push eax
push 1
mov eax, dword [ebp + 4]
xor ecx, ecx
mov edx, dword [edi + 0xb4]
call fcn.005773cc
mov bl, 1
jmp case.0x59e1c0.0
cmp dword [ebp + 4], 1
jne 0x59e78b
cmp dword [edi + 0x24], 0
jle case.0x59e1c0.0
dec dword [edi + 0x24]
mov eax, dword [edi + 0xb4]
cmp byte [eax + 0x57], 0
jne case.0x59e1c0.0
mov al, byte [edi + 0x39]
sub al, 0xa
je case.0x59e1c0.0
mov bl, 1
jmp case.0x59e1c0.0
inc dword [edi + 0x24]
jmp case.0x59e1c0.0
xor edx, edx
mov eax, edi
call fcn.0059caa0
test al, al
je 0x59e7a7
mov bl, 1
jmp case.0x59e1c0.0
call fcn.0043e3c0
test al, al
je case.0x59e1c0.0
mov eax, dword [edi + 0xb4]
mov edx, dword [0x452e7c]
call fcn.00404a3c
test al, al
je case.0x59e1c0.0
push 0
push 0
mov eax, dword [edi + 0xb4]
call fcn.0045f528
push eax
mov eax, dword [0x63f4c0]
mov eax, dword [eax]
call eax
jmp case.0x59e1c0.0
mov esi, dword [edi + 0xb4]
test esi, esi
je case.0x59e1c0.0
cmp dword [esi + 0x80], 0
je case.0x59e1c0.0
mov eax, edi
call fcn.0059bc24
test eax, eax
je case.0x59e1c0.0
mov eax, edi
call fcn.0059bc24
mov al, byte [eax + 0x30]
push eax
mov eax, edi
call fcn.0059bc24
mov eax, dword [eax + 0xe8]
mov edx, dword [edi + 0xb4]
mov edx, dword [edx + 0x80]
pop ecx
call fcn.00581954
jmp case.0x59e1c0.0
cmp dword [ebp + 4], 0
jne 0x59e8b4
lea eax, [edi + 0x3c]
xor edx, edx
call fcn.0051bf60
lea eax, [edi + 0x40]
call fcn.0051c124
mov esi, dword [edi + 0xb4]
mov eax, esi
mov edx, dword [0x452e7c]
call fcn.00404a3c
test al, al
je 0x59e8b4
mov eax, esi
call fcn.0045f8c8
test al, al
je 0x59e8b4
push 0
lea eax, [esp + 0x68]
push eax
mov dx, 0x52
xor eax, eax
call fcn.004091cc
mov edx, eax
xor ecx, ecx
mov eax, 0xa100
call fcn.0057b164
lea eax, [esp + 0x64]
push eax
mov eax, dword [edi + 0xb4]
call fcn.0045f528
pop edx
call fcn.00573270
mov eax, edi
call fcn.0059bc24
test eax, eax
je case.0x59e1c0.0
cmp dword [edi + 0xb4], 0
je case.0x59e1c0.0
mov eax, dword [edi + 0xb4]
test byte [eax + 0x1c], 8
jne case.0x59e1c0.0
cmp dword [edi + 0x5c], 0
je case.0x59e1c0.0
mov eax, edi
call fcn.0059bc24
mov eax, dword [eax + 0x74]
cmp byte [eax + 0x14], 1
jne 0x59e9cf
cmp dword [ebp + 4], 0
jne 0x59e9c4
xor edx, edx
mov eax, dword [edi + 0x5c]
mov ecx, dword [eax]
call dword [ecx + 0x40]
xor edx, edx
mov eax, dword [edi + 0x5c]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [edi + 0xb4]
mov edx, dword [0x452e7c]
call fcn.00404a3c
test al, al
je 0x59e9c8
mov eax, dword [edi + 0xb4]
mov edx, dword [0x452e7c]
call fcn.00404a60
mov ebp, eax
mov eax, ebp
call fcn.0045b580
dec eax
test eax, eax
jl 0x59e9c8
inc eax
mov dword [esp + 0x14], eax
xor esi, esi
mov edx, esi
mov eax, ebp
call fcn.0045b544
mov edx, dword [0x452e7c]
call fcn.00404a3c
test al, al
je 0x59e9a1
mov edx, esi
mov eax, ebp
call fcn.0045b544
call fcn.0045f8c8
test al, al
je 0x59e9a1
mov edx, esi
mov eax, ebp
call fcn.0045b544
call fcn.0045f528
xor ecx, ecx
mov edx, 0x21
call fcn.00577c08
jmp 0x59e9bb
push 0
mov edx, esi
mov eax, ebp
call fcn.0045b544
mov ecx, 0x210000
mov edx, 0xa100
call fcn.004588bc
inc esi
dec dword [esp + 0x14]
jne 0x59e95b
jmp 0x59e9c8
mov byte [edi + 0x35], 0
mov byte [edi + 0xad], 1
mov eax, dword [edi + 0x20]
call fcn.005a1190
test al, al
je case.0x59e1c0.0
mov eax, dword [edi + 0x20]
call fcn.005a112c
jmp case.0x59e1c0.0
mov eax, dword [edi + 0xb4]
test eax, eax
je case.0x59e1c0.0
cmp byte [eax + 0x57], 0
je 0x59ea09
mov dl, 1
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x10]
cmp byte [edi + 0x38], 0
jne case.0x59e1c0.0
mov dl, 1
mov eax, dword [edi + 0xb4]
call fcn.00573190
jmp case.0x59e1c0.0
cmp word [ebp + 4], 1
jne case.0x59e1c0.0
mov eax, dword [edi + 0xb4]
mov edx, dword [0x452e7c]
call fcn.00404a3c
test al, al
je case.0x59e1c0.0
mov eax, dword [edi + 0xb4]
call fcn.00573140
jmp case.0x59e1c0.0
mov eax, dword [edi + 0xb4]
cmp dword [eax + 0x30], 0
je 0x59eacb
mov eax, dword [0x63ec6c]
cmp byte [eax], 0
jne case.0x59e1c0.0
cmp byte [edi + 0x38], 0
jne 0x59ea86
mov dl, 1
mov eax, dword [edi + 0xb4]
call fcn.00573190
mov eax, dword [edi + 0xb4]
mov edx, dword [0x452e7c]
call fcn.00404a3c
test al, al
je case.0x59e1c0.0
push 0
lea eax, [esp + 0x58]
push eax
xor ecx, ecx
mov edx, 0x110001
mov eax, 0xa100
call fcn.0057b164
lea edx, [esp + 0x54]
mov eax, dword [edi + 0xb4]
call fcn.00577e98
jmp case.0x59e1c0.0
mov byte [edi + 0x3a], 0
jmp case.0x59e1c0.0
xor edx, edx
mov eax, edi
call fcn.0059caa0
test al, al
je case.0x59e1c0.0
mov eax, dword [edi + 0xb4]
mov edx, dword [0x452e7c]
call fcn.00404a3c
test al, al
je case.0x59e1c0.0
mov eax, dword [edi + 0xb4]
mov dword [esp + 0x18], eax
mov eax, edi
call fcn.0059b8ec
mov eax, dword [eax + 0x52c]
imul edx, dword [edi + 0xb0], 0x26
lea ebp, [eax + edx*8]
mov eax, dword [esp + 0x18]
mov si, 0xffb6
call fcn.00404aac
test al, al
je case.0x59e1c0.0
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x1d8], 0
je case.0x59e1c0.0
cmp dword [ebp + 0x14], 0x64
jne 0x59eb55
cmp dword [ebp + 0x50], 0x64
je case.0x59e1c0.0
mov byte [edi + 0xad], 1
mov byte [edi + 0x34], 1
mov eax, dword [0x63f038]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jae 0x59ec34
cmp dword [ebp + 0xc0], 1
jle 0x59ec34
mov byte [edi + 0xad], 1
mov byte [esp + 0x10], 0
mov eax, dword [ebp + 0x58]
mov edx, dword [edi + 0xb4]
cmp eax, dword [edx + 0x70]
je 0x59ebb7
cmp byte [edi + 0x11], 0
jne 0x59ebb7
mov edx, dword [ebp + 0x58]
mov eax, dword [edi + 0xb4]
call fcn.00457774
mov byte [esp + 0x10], 1
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x68]
mov eax, dword [eax + 0x18]
cmp eax, dword [ebp + 0x68]
je 0x59ebf8
cmp byte [edi + 0x10], 0
jne 0x59ebf8
or dword [edi + 0xa8], 0x2000
mov edx, dword [ebp + 0x68]
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x68]
call fcn.00432744
and dword [edi + 0xa8], 0xffffdfff
mov byte [esp + 0x10], 1
cmp byte [edi + 0x35], 0
jne 0x59ec34
cmp byte [esp + 0x10], 0
je 0x59ec1d
push 0x585
push 0
push 0
mov eax, dword [esp + 0x24]
call fcn.0045f528
push eax
call sub.user32.dll_RedrawWindow
push 0
mov eax, dword [esp + 0x1c]
call fcn.0045f528
xor ecx, ecx
mov edx, 0x85
call fcn.00577d18
mov eax, dword [edi + 0x20]
cmp byte [eax + 8], 2
jne 0x59ec45
mov eax, dword [edi + 0x20]
call fcn.005a112c
mov eax, dword [edi + 0x3c]
call fcn.0051c25c
jmp case.0x59e1c0.0
xor edx, edx
mov eax, edi
call fcn.0059caa0
test al, al
je case.0x59e1c0.0
mov eax, dword [edi + 0xb4]
mov edx, dword [0x452e7c]
call fcn.00404a3c
test al, al
je case.0x59e1c0.0
mov eax, edi
call fcn.00598b84
mov ebp, dword [edi + 0xb4]
mov eax, edi
call fcn.0059b8ec
mov eax, dword [eax + 0x52c]
imul edx, dword [edi + 0xb0], 0x26
lea eax, [eax + edx*8]
mov dword [esp + 0x1c], eax
mov eax, ebp
mov si, 0xffb6
call fcn.00404aac
test al, al
je case.0x59e1c0.0
mov byte [edi + 0x34], 0
mov byte [esp + 0x10], 0
mov eax, dword [0x63f038]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jae 0x59ed91
mov eax, edi
call fcn.0059b424
test al, al
jne 0x59ed91
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x1c]
mov edx, dword [edi + 0xb4]
cmp eax, dword [edx + 0x70]
je 0x59ed15
cmp byte [edi + 0x11], 0
jne 0x59ed15
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x1c]
mov eax, dword [edi + 0xb4]
call fcn.00457774
mov byte [esp + 0x10], 1
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x68]
mov eax, dword [eax + 0x18]
mov edx, dword [esp + 0x1c]
cmp eax, dword [edx + 0x2c]
je 0x59ed5e
cmp byte [edi + 0x10], 0
jne 0x59ed5e
or dword [edi + 0xa8], 0x2000
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x2c]
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x68]
call fcn.00432744
and dword [edi + 0xa8], 0xffffdfff
mov byte [esp + 0x10], 1
cmp byte [esp + 0x10], 0
jne 0x59ed91
mov eax, dword [edi + 0xb4]
mov edx, dword [0x4eb5a0]
call fcn.00404a3c
test al, al
je 0x59ed91
mov eax, dword [edi + 0xb4]
mov edx, dword [eax]
call dword [edx + 0x158]
test al, al
je 0x59ed91
mov byte [esp + 0x10], 1
mov byte [edi + 0xad], 1
mov eax, edi
call fcn.00598b84
mov eax, dword [edi + 0xb4]
cmp byte [eax + 0x57], 0
je 0x59edf0
mov eax, dword [0x63f038]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jae 0x59edf0
cmp byte [esp + 0x10], 0
je 0x59eddb
push 0x585
push 0
push 0
mov eax, ebp
call fcn.0045f528
push eax
call sub.user32.dll_RedrawWindow
push 0
mov eax, ebp
call fcn.0045f528
xor ecx, ecx
mov edx, 0x85
call fcn.00577d18
mov eax, dword [edi + 0x20]
cmp byte [eax + 8], 2
jne case.0x59e1c0.0
mov eax, dword [edi + 0x20]
call fcn.005a112c
jmp case.0x59e1c0.0
mov byte [edi + 0xac], 0
mov byte [edi + 0x34], 0
mov byte [edi + 0xad], 1
mov esi, dword [edi + 0xb4]
test esi, esi
je case.0x59e1c0.0
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x50]
test al, al
jne case.0x59e1c0.0
lea eax, [edi + 0x3c]
xor edx, edx
call fcn.0051bf60
lea eax, [edi + 0x40]
call fcn.0051c124
jmp case.0x59e1c0.0
mov esi, dword [edi + 0x74]
test esi, esi
je case.0x59e1c0.0
cmp byte [esi + 0x30], 0
je case.0x59e1c0.0
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x38]
jmp case.0x59e1c0.0
xor edx, edx
mov eax, edi
call fcn.0059caa0
test al, al
je 0x59f199
cmp byte [edi + 0xac], 0
jne 0x59f199
mov eax, edi
call fcn.0059bc24
mov dword [esp + 0x20], eax
mov eax, edi
call fcn.0059b8ec
imul edx, dword [edi + 0xb0], 0x26
mov eax, dword [eax + 0x52c]
lea eax, [eax + edx*8]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
test byte [eax + 0x1c], 0x10
jne 0x59f14a
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x74]
mov edx, 1
call fcn.00590454
test al, al
jne 0x59f14a
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x14], 0x64
jne 0x59eef4
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x50], 0x64
je 0x59f14a
mov eax, dword [edi + 0xb4]
mov edx, dword [0x452e7c]
call fcn.00404a3c
test al, al
je 0x59f14a
mov eax, dword [edi + 0xb4]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
test byte [eax + 0x1c], 0x10
jne 0x59f192
mov eax, dword [esp + 0x28]
call fcn.0045b580
dec eax
test eax, eax
jl 0x59efb1
inc eax
mov dword [esp + 0x14], eax
xor esi, esi
mov edx, esi
mov eax, dword [esp + 0x28]
call fcn.0045b544
mov edx, dword [0x5527f0]
call fcn.00404a3c
test al, al
je 0x59efaa
mov edx, esi
mov eax, dword [esp + 0x28]
call fcn.0045b544
cmp eax, dword [edi + 0xb4]
je 0x59efaa
mov edx, esi
mov eax, dword [esp + 0x28]
call fcn.0045b544
cmp eax, dword [ebp + 8]
je 0x59efaa
mov edx, esi
mov eax, dword [esp + 0x28]
call fcn.0045b544
mov eax, dword [eax + 0x210]
cmp byte [eax + 0xac], 0
je 0x59efaa
push 0
mov edx, esi
mov eax, dword [esp + 0x2c]
call fcn.0045b544
xor ecx, ecx
mov edx, 0xb014
call fcn.004588bc
inc esi
dec dword [esp + 0x14]
jne 0x59ef3a
mov eax, dword [0x63ed94]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jb 0x59efcb
mov byte [edi + 0xac], 1
mov eax, dword [edi + 0xb4]
call fcn.0045f528
mov edx, eax
mov eax, dword [0x63efc4]
mov eax, dword [eax]
call fcn.0058d520
mov eax, dword [0x63f438]
push edi
mov esi, eax
lea edi, [esp + 0x80]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
pop edi
lea eax, [esp + 0x7c]
mov edx, dword [0x63f47c]
mov cl, 0x20
call fcn.00404368
mov al, byte [edi + 0x39]
and eax, 0xff
bt dword [esp + 0x7c], eax
jb 0x59f04a
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x80]
mov al, byte [eax + 5]
xor al, 1
mov edx, eax
shl eax, 8
sub eax, edx
push eax
push 1
push 0xffffffffffffffff
mov eax, dword [esp + 0x34]
call fcn.0045f528
mov ecx, eax
xor edx, edx
mov eax, edi
call fcn.0059a704
mov eax, dword [0x63f038]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jae 0x59f192
mov eax, dword [0x63eff4]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jae 0x59f082
mov eax, dword [0x63efc0]
cmp byte [eax], 0
je 0x59f192
mov eax, dword [esp + 0x24]
cmp dword [eax + 0xc0], 1
jle 0x59f192
mov byte [edi + 0xad], 1
mov byte [esp + 0x10], 0
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x58]
mov edx, dword [edi + 0xb4]
cmp eax, dword [edx + 0x70]
je 0x59f0ce
cmp byte [edi + 0x11], 0
jne 0x59f0ce
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x58]
mov eax, dword [edi + 0xb4]
call fcn.00457774
mov byte [esp + 0x10], 1
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x68]
mov eax, dword [eax + 0x18]
mov edx, dword [esp + 0x24]
cmp eax, dword [edx + 0x68]
je 0x59f117
cmp byte [edi + 0x10], 0
jne 0x59f117
or dword [edi + 0xa8], 0x2000
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x68]
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x68]
call fcn.00432744
and dword [edi + 0xa8], 0xffffdfff
mov byte [esp + 0x10], 1
cmp byte [esp + 0x10], 0
je 0x59f131
push 0xffffffffffffffff
push 0
mov eax, dword [esp + 0x30]
call fcn.0045f528
push eax
call sub.user32.dll_InvalidateRect
push 0
mov eax, dword [esp + 0x2c]
call fcn.0045f528
xor ecx, ecx
mov edx, 0x85
call fcn.00577d18
jmp 0x59f192
mov eax, dword [edi + 0xb4]
mov edx, dword [0x452e7c]
call fcn.00404a3c
test al, al
je 0x59f178
mov eax, dword [edi + 0xb4]
call fcn.0045f528
mov edx, eax
mov eax, dword [0x63efc4]
mov eax, dword [eax]
call fcn.0058d520
mov eax, dword [0x63ed94]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jb 0x59f192
mov byte [edi + 0xac], 1
mov eax, edi
call fcn.0054e0f8
mov eax, dword [0x63ebd0]
cmp dword [eax], 0
je 0x59f1ce
mov eax, dword [0x63ebd0]
mov eax, dword [eax]
cmp dword [eax + 0xf4], 0
je 0x59f1ce
lea edx, [esp + 0x74]
xor eax, eax
call fcn.005727fc
lea edx, [esp + 0x74]
mov eax, dword [0x63f124]
mov eax, dword [eax]
call fcn.0047fc08
mov esi, dword [edi + 0x74]
test esi, esi
je case.0x59e1c0.0
cmp byte [esi + 0x30], 0
je case.0x59e1c0.0
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x38]
jmp case.0x59e1c0.0
xor edx, edx
mov eax, edi
call fcn.0059caa0
test al, al
je case.0x59e1c0.0
cmp dword [edi + 0xb4], 0
je case.0x59e1c0.0
mov eax, dword [0x63ebd0]
cmp dword [eax], 0
je 0x59f26c
mov eax, dword [0x63ebd0]
mov eax, dword [eax]
cmp byte [eax + 0x89], 0
je 0x59f26c
mov eax, dword [0x63ebd0]
mov eax, dword [eax]
cmp byte [eax + 0xb0], 0
je 0x59f26c
mov eax, dword [0x63ebd0]
mov eax, dword [eax]
cmp dword [eax + 0xc0], 0
je 0x59f26c
mov eax, dword [0x63ebd0]
mov eax, dword [eax]
mov eax, dword [eax + 0xc0]
mov edx, dword [eax]
call dword [edx + 0x50]
test al, al
jne 0x59f26c
mov eax, dword [0x63ebd0]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0xc0], edx
mov eax, dword [edi + 0xb4]
mov dword [esp + 0x2c], eax
mov eax, edi
call fcn.0059bc24
mov ebp, eax
mov eax, edi
call fcn.0059b8ec
mov eax, dword [eax + 0x52c]
imul edx, dword [edi + 0xb0], 0x26
lea esi, [eax + edx*8]
mov eax, dword [ebp + 0x74]
mov edx, 1
call fcn.00590454
test al, al
jne 0x59f404
test byte [ebp + 0x1c], 0x10
jne 0x59f404
mov eax, edi
call fcn.0059dfb8
test al, al
jne 0x59f404
mov eax, dword [0x63ed94]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jb 0x59f2de
mov byte [edi + 0xac], 0
mov eax, dword [0x63f438]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jb 0x59f316
mov eax, dword [0x63f47c]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jb 0x59f316
lea eax, [edi + 0x3c]
mov dl, 1
call fcn.0051bf60
lea eax, [edi + 0x40]
call fcn.0051c124
mov byte [esp + 0x10], 0
mov eax, dword [0x63f038]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jae 0x59f3ad
mov eax, edi
call fcn.0059b424
test al, al
jne 0x59f3ad
cmp dword [esi + 0x14], 0x64
jne 0x59f345
cmp dword [esi + 0x50], 0x64
je 0x59f3ad
mov eax, dword [esi + 0x1c]
mov edx, dword [edi + 0xb4]
cmp eax, dword [edx + 0x70]
je 0x59f36c
cmp byte [edi + 0x11], 0
jne 0x59f36c
mov edx, dword [esi + 0x1c]
mov eax, dword [edi + 0xb4]
call fcn.00457774
mov byte [esp + 0x10], 1
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x68]
mov eax, dword [eax + 0x18]
cmp eax, dword [esi + 0x2c]
je 0x59f3ad
cmp byte [edi + 0x10], 0
jne 0x59f3ad
or dword [edi + 0xa8], 0x2000
mov edx, dword [esi + 0x2c]
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x68]
call fcn.00432744
and dword [edi + 0xa8], 0xffffdfff
mov byte [esp + 0x10], 1
mov eax, dword [edi + 0xb4]
cmp byte [eax + 0x57], 0
je 0x59f404
mov eax, dword [0x63f038]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jae 0x59f404
mov byte [edi + 0xad], 1
cmp byte [esp + 0x10], 0
je 0x59f3ed
push 0xffffffffffffffff
push 0
mov eax, dword [esp + 0x34]
call fcn.0045f528
push eax
call sub.user32.dll_InvalidateRect
push 0
mov eax, dword [esp + 0x30]
call fcn.0045f528
xor ecx, ecx
mov edx, 0x85
call fcn.00577d18
mov esi, dword [edi + 0x74]
test esi, esi
je 0x59f418
cmp byte [esi + 0x30], 0
je 0x59f418
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x38]
mov eax, edi
call fcn.0054e0f8
jmp case.0x59e1c0.0
mov eax, edi
call fcn.005a127c
jmp case.0x59e1c0.0
lea eax, [esp + 0x34]
push eax
mov eax, edi
call fcn.0059bec0
push eax
call sub.user32.dll_GetWindowRect
test eax, eax
je 0x59f480
lea eax, [esp + 0x34]
xor edx, edx
call fcn.0057b590
mov edx, dword [ebp + 8]
cmp eax, dword [edx + 0x10]
je 0x59f463
or dword [edi + 0xa8], 0x8000
lea eax, [esp + 0x34]
xor edx, edx
call fcn.0057b5a4
mov edx, dword [ebp + 8]
cmp eax, dword [edx + 0x14]
je 0x59f480
or dword [edi + 0xa8], 0x10000
xor edx, edx
mov eax, edi
call fcn.0059caa0
test al, al
je case.0x59e1c0.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x18]
test dl, 1
jne case.0x59e1c0.0
test dl, 2
jne case.0x59e1c0.0
or dword [edi + 0xa8], 0x200000
jmp case.0x59e1c0.0
xor edx, edx
mov eax, edi
call fcn.0059caa0
test al, al
je case.0x59e1c0.0
and dword [edi + 0xa8], 0xffdfffff
jmp case.0x59e1c0.0
xor edx, edx
mov eax, edi
call fcn.0059caa0
test al, al
je case.0x59e1c0.0
mov byte [edi + 0xad], 1
mov eax, edi
call fcn.00599088
test al, al
je 0x59f52c
mov eax, dword [edi + 0xb4]
mov edx, dword [0x452e7c]
call fcn.00404a3c
test al, al
je 0x59f52c
mov eax, dword [edi + 0xb4]
call fcn.0045f528
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x59f52c
mov eax, edi
call fcn.0059af88
mov eax, edi
call fcn.0059ce74
test al, al
je 0x59f649
mov eax, dword [edi + 0xb4]
mov edx, dword [0x62a7bc]
call fcn.00404a3c
test al, al
je 0x59f5ca
mov eax, dword [edi + 0xb4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
call fcn.00557a38
mov ebp, eax
mov eax, dword [esp + 0x30]
call fcn.00557a38
test eax, eax
je 0x59f633
mov eax, ebp
call fcn.0045b580
dec eax
test eax, eax
jl 0x59f633
inc eax
mov dword [esp + 0x14], eax
xor esi, esi
mov eax, ebp
call fcn.0045b580
cmp esi, eax
jge 0x59f5c1
mov edx, esi
mov eax, ebp
call fcn.0045b544
test byte [eax + 0x1c], 8
jne 0x59f5c1
push 0
mov edx, esi
mov eax, ebp
call fcn.0045b544
mov ecx, 0x140001
mov edx, 0xa100
call fcn.004588bc
inc esi
dec dword [esp + 0x14]
jne 0x59f58d
jmp 0x59f633
mov eax, dword [edi + 0xb4]
mov edx, dword [0x452e7c]
call fcn.00404a3c
test al, al
je 0x59f633
mov ebp, dword [edi + 0xb4]
mov eax, ebp
call fcn.0045b580
dec eax
test eax, eax
jl 0x59f633
inc eax
mov dword [esp + 0x14], eax
xor esi, esi
mov eax, ebp
call fcn.0045b580
cmp esi, eax
jge 0x59f62c
mov edx, esi
mov eax, ebp
call fcn.0045b544
test byte [eax + 0x1c], 8
jne 0x59f62c
push 0
mov edx, esi
mov eax, ebp
call fcn.0045b544
mov ecx, 0x140001
mov edx, 0xa100
call fcn.004588bc
inc esi
dec dword [esp + 0x14]
jne 0x59f5f8
mov eax, dword [edi + 0xa8]
and eax, 0xffff7fff
and eax, 0xfffeffff
mov dword [edi + 0xa8], eax
cmp dword [edi + 0xa0], 0
je 0x59f662
mov eax, dword [edi + 0xa0]
cmp byte [eax + 0x30], 0
jne case.0x59e1c0.0
lea eax, [edi + 0x3c]
xor edx, edx
call fcn.0051bf60
lea eax, [edi + 0x40]
call fcn.0051c124
jmp case.0x59e1c0.0
mov eax, edi
call fcn.00598b84
jmp case.0x59e1c0.0
xor edx, edx
mov eax, edi
call fcn.0059caa0
test al, al
je case.0x59e1c0.0
mov eax, dword [edi + 0xb4]
mov edx, dword [0x452e7c]
call fcn.00404a3c
test al, al
je 0x59f7a8
mov eax, edi
call fcn.00599088
test al, al
je 0x59f731
mov eax, dword [edi + 0xb4]
call fcn.0045f528
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x59f731
push 0
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x30]
call fcn.0045f528
mov ecx, 0x110001
mov edx, 0xa100
call fcn.00577d18
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x30]
call fcn.0045f528
xor ecx, ecx
mov edx, 0x17
call fcn.00577c08
mov eax, dword [edi + 0xb4]
test byte [eax + 0x1c], 0x10
je 0x59f731
push 0x105
push 0
push 0
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x30]
call fcn.0045f528
push eax
call sub.user32.dll_RedrawWindow
mov eax, edi
call fcn.0059c540
test al, al
je 0x59f844
mov byte [edi + 0xad], 1
mov eax, edi
call fcn.005a185c
test al, al
jne 0x59f844
push 0
mov ecx, 0x140001
mov edx, 0xa100
mov eax, dword [edi + 0xb4]
call fcn.004588bc
push 0
lea eax, [esp + 0x68]
push eax
mov dx, 0x52
xor eax, eax
call fcn.004091cc
mov edx, eax
xor ecx, ecx
mov eax, 0xa100
call fcn.0057b164
lea eax, [esp + 0x64]
push eax
mov eax, dword [edi + 0xb4]
call fcn.0045f528
pop edx
call fcn.00573270
jmp 0x59f844
mov eax, edi
call fcn.00599088
test al, al
je 0x59f83d
mov eax, dword [edi + 0xb4]
cmp dword [eax + 0x30], 0
je 0x59f83d
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x30]
call fcn.0045f528
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x59f83d
push 0
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x30]
call fcn.0045f528
mov ecx, 0x110001
mov edx, 0xa100
call fcn.00577d18
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x30]
call fcn.0045f528
xor ecx, ecx
mov edx, 0x17
call fcn.00577c08
mov eax, dword [edi + 0xb4]
test byte [eax + 0x1c], 0x10
je 0x59f83d
push 0x105
push 0
push 0
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x30]
call fcn.0045f528
push eax
call sub.user32.dll_RedrawWindow
mov byte [edi + 0xad], 1
lea eax, [edi + 0x3c]
xor edx, edx
call fcn.0051bf60
lea eax, [edi + 0x40]
call fcn.0051c124
jmp case.0x59e1c0.0
mov eax, edi
call fcn.0054e0f8
jmp case.0x59e1c0.0
mov eax, edi
call fcn.0054e0f8
mov eax, ebx
add esp, 0x9c
pop ebp
pop edi
pop esi
pop ebx
ret