Function at 0x55a0c0
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.0x55a100.0
mov eax, dword [ebp]
cmp eax, 0x200
jg 0x55a17d
je 0x55a21d
cmp eax, 0xf
jg 0x55a137
je 0x55b3f2
cmp eax, 0xb
ja case.0x55a100.0
jmp dword [eax*4 + 0x55a107]
cmp eax, 0x7b
jg 0x55a162
je 0x55a72b
sub eax, 0x18
je 0x55b5b3
sub eax, 5
je 0x55ad44
sub eax, 0x29
je 0x55b36a
jmp case.0x55a100.0
sub eax, 0x81
je case.0x55a100.1
sub eax, 0xa7
je 0x55a6d3
jmp case.0x55a100.0
cmp eax, 0xb00b
jg 0x55a1ce
je 0x55a77e
cmp eax, 0x317
jg 0x55a1b7
je 0x55a609
sub eax, 0x201
je 0x55b792
dec eax
je 0x55b79b
sub eax, 0xe
je 0x55a95f
jmp case.0x55a100.0
sub eax, 0xa100
je 0x55a20d
sub eax, 0xf08
je 0x55a993
jmp case.0x55a100.0
cmp eax, 0xb014
jg 0x55a1f4
je 0x55b129
sub eax, 0xb00c
je 0x55ad44
sub eax, 7
je 0x55adab
jmp case.0x55a100.0
sub eax, 0xb019
je 0x55a926
sub eax, 0x1e
je 0x55ad8a
jmp case.0x55a100.0
mov eax, ebp
mov edx, edi
call fcn.00558e10
mov ebx, eax
jmp case.0x55a100.0
mov eax, dword [0x5867b4]
cmp dword [eax], 0
je 0x55a589
mov eax, dword [0x5867b4]
mov eax, dword [eax]
cmp byte [eax + 0x89], 0
je 0x55a589
mov eax, dword [0x5867b4]
mov eax, dword [eax]
cmp byte [eax + 0xb0], 0
je 0x55a589
mov eax, dword [0x5867b4]
mov eax, dword [eax]
test byte [eax + 0x1c], 8
jne 0x55a589
cmp dword [edi + 0xb4], 0
je 0x55a589
mov eax, dword [edi + 0xb4]
test byte [eax + 0x1c], 8
jne 0x55a589
mov byte [esp + 8], 0
mov eax, dword [edi + 0xb4]
mov edx, dword [0x4410f8]
call fcn.00403efc
test al, al
je 0x55a2a7
mov eax, dword [edi + 0xb4]
mov dword [esp + 0xc], eax
jmp 0x55a2ce
mov eax, dword [edi + 0x70]
mov edx, dword [0x4a5de0]
call fcn.00403efc
test al, al
je 0x55a2c8
mov eax, dword [edi + 0x70]
mov eax, dword [eax + 0x2cc]
mov dword [esp + 0xc], eax
jmp 0x55a2ce
xor eax, eax
mov dword [esp + 0xc], eax
cmp dword [esp + 0xc], 0
je 0x55a457
mov eax, dword [esp + 0xc]
call fcn.00448700
dec eax
test eax, eax
jl 0x55a457
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.004486c4
mov edx, dword [eax]
call dword [edx + 0x50]
test al, al
jne 0x55a44c
mov edx, esi
mov eax, dword [esp + 0xc]
call fcn.004486c4
lea edx, [esp + 0x64]
call fcn.00444b70
lea eax, [esp + 0x64]
mov edx, esp
call fcn.00407364
test al, al
je 0x55a44c
mov edx, esi
mov eax, dword [esp + 0xc]
call fcn.004486c4
cmp byte [eax + 0x99], 0
je 0x55a44c
mov edx, esi
mov eax, dword [esp + 0xc]
call fcn.004486c4
cmp dword [eax + 0x80], 0
je 0x55a44c
mov edx, esi
mov eax, dword [esp + 0xc]
call fcn.004486c4
mov eax, dword [eax + 0x40]
sub dword [esp], eax
mov edx, esi
mov eax, dword [esp + 0xc]
call fcn.004486c4
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.004486c4
mov edx, dword [0x5867b4]
mov edx, dword [edx]
cmp eax, dword [edx + 0xc0]
je 0x55a44a
mov eax, dword [0x586b7c]
mov eax, dword [eax]
call fcn.00465fd8
lea edx, [esp + 0x74]
xor eax, eax
call fcn.005177b4
mov eax, dword [esp + 0x74]
mov dword [esp], eax
lea edx, [esp + 0x74]
xor eax, eax
call fcn.005177b4
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
mov edx, esi
mov eax, dword [esp + 0xc]
call fcn.004486c4
mov edx, dword [0x5867b4]
mov edx, dword [edx]
mov dword [edx + 0xc0], eax
mov eax, dword [0x586b7c]
mov eax, dword [eax]
mov eax, dword [eax + 0x74]
push eax
mov edx, esi
mov eax, dword [esp + 0x10]
call fcn.004486c4
mov ecx, dword [eax + 0x80]
mov eax, dword [0x5867b4]
mov eax, dword [eax]
lea edx, [esp + 4]
call fcn.0048aa18
mov bl, 1
inc esi
dec dword [esp + 0x14]
jne 0x55a2f2
cmp byte [esp + 8], 0
jne 0x55a52d
mov eax, dword [0x5867b4]
mov eax, dword [eax]
cmp dword [eax + 0xc0], 0
je 0x55a52d
mov eax, dword [0x5867b4]
mov eax, dword [eax]
mov eax, dword [eax + 0xc0]
mov edx, dword [eax]
call dword [edx + 0x50]
test al, al
jne 0x55a52d
mov eax, dword [0x5867b4]
mov eax, dword [eax]
mov eax, dword [eax + 0xc0]
cmp eax, dword [esp + 0xc]
je 0x55a521
cmp dword [esp + 0xc], 0
je 0x55a521
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x99], 0
je 0x55a521
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x80], 0
je 0x55a521
lea edx, [esp + 0x74]
xor eax, eax
call fcn.005177b4
mov eax, dword [esp + 0x74]
mov dword [esp], eax
lea edx, [esp + 0x74]
xor eax, eax
call fcn.005177b4
mov eax, dword [esp + 0x78]
mov dword [esp + 4], eax
mov eax, dword [0x5867b4]
mov eax, dword [eax]
mov edx, dword [esp + 0xc]
mov dword [eax + 0xc0], edx
mov eax, dword [0x586b7c]
mov eax, dword [eax]
mov eax, dword [eax + 0x74]
push eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x80]
mov eax, dword [0x5867b4]
mov eax, dword [eax]
lea edx, [esp + 4]
call fcn.0048aa18
jmp 0x55a52d
mov eax, dword [0x5867b4]
mov eax, dword [eax]
call fcn.0048a564
cmp byte [esp + 8], 0
jne 0x55a589
mov eax, dword [0x5867b4]
mov eax, dword [eax]
cmp byte [eax + 0x89], 0
je 0x55a589
mov eax, dword [0x5867b4]
mov eax, dword [eax]
cmp byte [eax + 0xb0], 0
je 0x55a589
mov eax, dword [0x5867b4]
mov eax, dword [eax]
cmp dword [eax + 0xc0], 0
je 0x55a589
mov eax, dword [0x5867b4]
mov eax, dword [eax]
mov eax, dword [eax + 0xc0]
mov edx, dword [eax]
call dword [edx + 0x50]
test al, al
jne 0x55a589
mov eax, dword [0x5867b4]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0xc0], edx
mov eax, edi
mov edx, dword [0x5545e4]
call fcn.00403efc
test al, al
je case.0x55a100.0
xor edx, edx
mov eax, edi
call fcn.0055da54
test al, al
je case.0x55a100.0
movsx eax, word [ebp + 8]
mov edx, dword [edi + 0xb4]
mov edx, dword [edx + 0x48]
sar edx, 1
jns 0x55a5c3
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 0x55a5e1
adc edx, 0
sub eax, edx
mov dword [esi + 0xd0], eax
lea eax, [esi + 0xb8]
call fcn.0040f0a8
mov byte [edi + 0xad], 1
mov dl, 1
mov eax, esi
call fcn.0054ca08
jmp case.0x55a100.0
mov dl, 1
mov eax, dword [edi + 0xb4]
call fcn.00518144
xor edx, edx
mov eax, edi
call fcn.005589e0
test al, al
jne case.0x55a100.0
cmp dword [ebp + 4], 0
je case.0x55a100.0
mov eax, dword [edi + 0xb4]
mov edx, dword [0x4410f8]
call fcn.00403efc
test al, al
je case.0x55a100.0
push 0xffffffffffffffec
mov eax, dword [edi + 0xb4]
call fcn.0044b9d0
push eax
call sub.user32.dll_GetWindowLongA
test ah, 2
je 0x55a669
mov esi, 2
jmp 0x55a66b
xor esi, esi
lea ecx, [esp + 0x74]
mov edx, esi
mov eax, esi
call fcn.0040735c
lea eax, [esp + 0x74]
push eax
push 1
mov eax, dword [ebp + 4]
xor ecx, ecx
mov edx, dword [edi + 0xb4]
call fcn.0051c314
mov bl, 1
jmp case.0x55a100.0
cmp dword [ebp + 4], 1
jne 0x55a6cb
cmp dword [edi + 0x24], 0
jle case.0x55a100.0
dec dword [edi + 0x24]
mov eax, dword [edi + 0xb4]
cmp byte [eax + 0x57], 0
jne case.0x55a100.0
mov al, byte [edi + 0x39]
sub al, 0xa
je case.0x55a100.0
mov bl, 1
jmp case.0x55a100.0
inc dword [edi + 0x24]
jmp case.0x55a100.0
xor edx, edx
mov eax, edi
call fcn.005589e0
test al, al
je 0x55a6e7
mov bl, 1
jmp case.0x55a100.0
call fcn.0042de10
test al, al
je case.0x55a100.0
mov eax, dword [edi + 0xb4]
mov edx, dword [0x4410f8]
call fcn.00403efc
test al, al
je case.0x55a100.0
push 0
push 0
mov eax, dword [edi + 0xb4]
call fcn.0044b9d0
push eax
mov eax, dword [0x586df0]
mov eax, dword [eax]
call eax
jmp case.0x55a100.0
mov esi, dword [edi + 0xb4]
test esi, esi
je case.0x55a100.0
cmp dword [esi + 0x7c], 0
je case.0x55a100.0
mov eax, edi
call fcn.00557b64
test eax, eax
je case.0x55a100.0
mov eax, edi
call fcn.00557b64
mov al, byte [eax + 0x30]
push eax
mov eax, edi
call fcn.00557b64
mov eax, dword [eax + 0xe8]
mov edx, dword [edi + 0xb4]
mov edx, dword [edx + 0x7c]
pop ecx
call fcn.00515ce8
jmp case.0x55a100.0
cmp dword [ebp + 4], 0
jne 0x55a7ee
lea eax, [edi + 0x3c]
xor edx, edx
call fcn.004a0418
lea eax, [edi + 0x40]
call fcn.004a05dc
mov esi, dword [edi + 0xb4]
mov eax, esi
mov edx, dword [0x4410f8]
call fcn.00403efc
test al, al
je 0x55a7ee
mov eax, esi
call fcn.0044bcd4
test al, al
je 0x55a7ee
push 0
lea eax, [esp + 0x68]
push eax
mov dx, 0x52
xor eax, eax
call fcn.00408158
mov edx, eax
xor ecx, ecx
mov eax, 0xa100
call fcn.00533bd0
lea eax, [esp + 0x64]
push eax
mov eax, dword [edi + 0xb4]
call fcn.0044b9d0
pop edx
call fcn.00518224
mov eax, edi
call fcn.00557b64
test eax, eax
je case.0x55a100.0
cmp dword [edi + 0xb4], 0
je case.0x55a100.0
mov eax, dword [edi + 0xb4]
test byte [eax + 0x1c], 8
jne case.0x55a100.0
cmp dword [edi + 0x5c], 0
je case.0x55a100.0
mov eax, edi
call fcn.00557b64
mov eax, dword [eax + 0x74]
cmp byte [eax + 0x14], 1
jne 0x55a909
cmp dword [ebp + 4], 0
jne 0x55a8fe
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 [0x4410f8]
call fcn.00403efc
test al, al
je 0x55a902
mov eax, dword [edi + 0xb4]
mov edx, dword [0x4410f8]
call fcn.00403f20
mov ebp, eax
mov eax, ebp
call fcn.00448700
dec eax
test eax, eax
jl 0x55a902
inc eax
mov dword [esp + 0x14], eax
xor esi, esi
mov edx, esi
mov eax, ebp
call fcn.004486c4
mov edx, dword [0x4410f8]
call fcn.00403efc
test al, al
je 0x55a8db
mov edx, esi
mov eax, ebp
call fcn.004486c4
call fcn.0044bcd4
test al, al
je 0x55a8db
mov edx, esi
mov eax, ebp
call fcn.004486c4
call fcn.0044b9d0
xor ecx, ecx
mov edx, 0x21
call fcn.0051cb50
jmp 0x55a8f5
push 0
mov edx, esi
mov eax, ebp
call fcn.004486c4
mov ecx, 0x210000
mov edx, 0xa100
call fcn.0044639c
inc esi
dec dword [esp + 0x14]
jne 0x55a895
jmp 0x55a902
mov byte [edi + 0x35], 0
mov byte [edi + 0xad], 1
mov eax, dword [edi + 0x20]
call fcn.0055d038
test al, al
je case.0x55a100.0
mov eax, dword [edi + 0x20]
call fcn.0055cfd4
jmp case.0x55a100.0
mov eax, dword [edi + 0xb4]
test eax, eax
je case.0x55a100.0
cmp byte [eax + 0x57], 0
je 0x55a943
mov dl, 1
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 0x10]
cmp byte [edi + 0x38], 0
jne case.0x55a100.0
mov dl, 1
mov eax, dword [edi + 0xb4]
call fcn.00518144
jmp case.0x55a100.0
cmp word [ebp + 4], 1
jne case.0x55a100.0
mov eax, dword [edi + 0xb4]
mov edx, dword [0x4410f8]
call fcn.00403efc
test al, al
je case.0x55a100.0
mov eax, dword [edi + 0xb4]
call fcn.005180f4
jmp case.0x55a100.0
mov eax, dword [edi + 0xb4]
cmp dword [eax + 0x30], 0
je 0x55aa05
mov eax, dword [0x586818]
cmp byte [eax], 0
jne case.0x55a100.0
cmp byte [edi + 0x38], 0
jne 0x55a9c0
mov dl, 1
mov eax, dword [edi + 0xb4]
call fcn.00518144
mov eax, dword [edi + 0xb4]
mov edx, dword [0x4410f8]
call fcn.00403efc
test al, al
je case.0x55a100.0
push 0
lea eax, [esp + 0x58]
push eax
xor ecx, ecx
mov edx, 0x110001
mov eax, 0xa100
call fcn.00533bd0
lea edx, [esp + 0x54]
mov eax, dword [edi + 0xb4]
call fcn.0051cde0
jmp case.0x55a100.0
mov byte [edi + 0x3a], 0
jmp case.0x55a100.0
xor edx, edx
mov eax, edi
call fcn.005589e0
test al, al
je case.0x55a100.0
mov eax, dword [edi + 0xb4]
mov edx, dword [0x4410f8]
call fcn.00403efc
test al, al
je case.0x55a100.0
mov eax, dword [edi + 0xb4]
mov dword [esp + 0x18], eax
mov eax, edi
call fcn.0055782c
mov eax, dword [eax + 0x52c]
imul edx, dword [edi + 0xb0], 0x26
lea ebp, [eax + edx*8]
mov eax, dword [esp + 0x18]
mov si, 0xffb8
call fcn.00403f6c
test al, al
je case.0x55a100.0
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x1a4], 0
je case.0x55a100.0
cmp dword [ebp + 0x14], 0x64
jne 0x55aa8f
cmp dword [ebp + 0x50], 0x64
je case.0x55a100.0
mov byte [edi + 0xad], 1
mov byte [edi + 0x34], 1
mov eax, dword [0x586ac8]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jae 0x55ab6e
cmp dword [ebp + 0xc0], 1
jle 0x55ab6e
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 0x55aaf1
cmp byte [edi + 0x11], 0
jne 0x55aaf1
mov edx, dword [ebp + 0x58]
mov eax, dword [edi + 0xb4]
call fcn.00445370
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 0x55ab32
cmp byte [edi + 0x10], 0
jne 0x55ab32
or dword [edi + 0xa8], 0x2000
mov edx, dword [ebp + 0x68]
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x68]
call fcn.004236d0
and dword [edi + 0xa8], 0xffffdfff
mov byte [esp + 0x10], 1
cmp byte [edi + 0x35], 0
jne 0x55ab6e
cmp byte [esp + 0x10], 0
je 0x55ab57
push 0x585
push 0
push 0
mov eax, dword [esp + 0x24]
call fcn.0044b9d0
push eax
call sub.user32.dll_RedrawWindow
push 0
mov eax, dword [esp + 0x1c]
call fcn.0044b9d0
xor ecx, ecx
mov edx, 0x85
call fcn.0051cc60
mov eax, dword [edi + 0x20]
cmp byte [eax + 8], 2
jne 0x55ab7f
mov eax, dword [edi + 0x20]
call fcn.0055cfd4
mov eax, dword [edi + 0x3c]
call fcn.004a0714
jmp case.0x55a100.0
xor edx, edx
mov eax, edi
call fcn.005589e0
test al, al
je case.0x55a100.0
mov eax, dword [edi + 0xb4]
mov edx, dword [0x4410f8]
call fcn.00403efc
test al, al
je case.0x55a100.0
mov eax, edi
call fcn.00554b08
mov ebp, dword [edi + 0xb4]
mov eax, edi
call fcn.0055782c
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, 0xffb8
call fcn.00403f6c
test al, al
je case.0x55a100.0
mov byte [edi + 0x34], 0
mov byte [esp + 0x10], 0
mov eax, dword [0x586ac8]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jae 0x55accb
mov eax, edi
call fcn.005573a8
test al, al
jne 0x55accb
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x1c]
mov edx, dword [edi + 0xb4]
cmp eax, dword [edx + 0x70]
je 0x55ac4f
cmp byte [edi + 0x11], 0
jne 0x55ac4f
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x1c]
mov eax, dword [edi + 0xb4]
call fcn.00445370
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 0x55ac98
cmp byte [edi + 0x10], 0
jne 0x55ac98
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.004236d0
and dword [edi + 0xa8], 0xffffdfff
mov byte [esp + 0x10], 1
cmp byte [esp + 0x10], 0
jne 0x55accb
mov eax, dword [edi + 0xb4]
mov edx, dword [0x5810ac]
call fcn.00403efc
test al, al
je 0x55accb
mov eax, dword [edi + 0xb4]
mov edx, dword [eax]
call dword [edx + 0x148]
test al, al
je 0x55accb
mov byte [esp + 0x10], 1
mov byte [edi + 0xad], 1
mov eax, edi
call fcn.00554b08
mov eax, dword [edi + 0xb4]
cmp byte [eax + 0x57], 0
je 0x55ad2a
mov eax, dword [0x586ac8]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jae 0x55ad2a
cmp byte [esp + 0x10], 0
je 0x55ad15
push 0x585
push 0
push 0
mov eax, ebp
call fcn.0044b9d0
push eax
call sub.user32.dll_RedrawWindow
push 0
mov eax, ebp
call fcn.0044b9d0
xor ecx, ecx
mov edx, 0x85
call fcn.0051cc60
mov eax, dword [edi + 0x20]
cmp byte [eax + 8], 2
jne case.0x55a100.0
mov eax, dword [edi + 0x20]
call fcn.0055cfd4
jmp case.0x55a100.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.0x55a100.0
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x50]
test al, al
jne case.0x55a100.0
lea eax, [edi + 0x3c]
xor edx, edx
call fcn.004a0418
lea eax, [edi + 0x40]
call fcn.004a05dc
jmp case.0x55a100.0
mov esi, dword [edi + 0x74]
test esi, esi
je case.0x55a100.0
cmp byte [esi + 0x30], 0
je case.0x55a100.0
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x38]
jmp case.0x55a100.0
xor edx, edx
mov eax, edi
call fcn.005589e0
test al, al
je 0x55b0d3
cmp byte [edi + 0xac], 0
jne 0x55b0d3
mov eax, edi
call fcn.00557b64
mov dword [esp + 0x20], eax
mov eax, edi
call fcn.0055782c
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 0x55b084
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x74]
mov edx, 1
call fcn.00543e54
test al, al
jne 0x55b084
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x14], 0x64
jne 0x55ae2e
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x50], 0x64
je 0x55b084
mov eax, dword [edi + 0xb4]
mov edx, dword [0x4410f8]
call fcn.00403efc
test al, al
je 0x55b084
mov eax, dword [edi + 0xb4]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
test byte [eax + 0x1c], 0x10
jne 0x55b0cc
mov eax, dword [esp + 0x28]
call fcn.00448700
dec eax
test eax, eax
jl 0x55aeeb
inc eax
mov dword [esp + 0x14], eax
xor esi, esi
mov edx, esi
mov eax, dword [esp + 0x28]
call fcn.004486c4
mov edx, dword [0x497fa0]
call fcn.00403efc
test al, al
je 0x55aee4
mov edx, esi
mov eax, dword [esp + 0x28]
call fcn.004486c4
cmp eax, dword [edi + 0xb4]
je 0x55aee4
mov edx, esi
mov eax, dword [esp + 0x28]
call fcn.004486c4
cmp eax, dword [ebp + 8]
je 0x55aee4
mov edx, esi
mov eax, dword [esp + 0x28]
call fcn.004486c4
mov eax, dword [eax + 0x1e0]
cmp byte [eax + 0xac], 0
je 0x55aee4
push 0
mov edx, esi
mov eax, dword [esp + 0x2c]
call fcn.004486c4
xor ecx, ecx
mov edx, 0xb014
call fcn.0044639c
inc esi
dec dword [esp + 0x14]
jne 0x55ae74
mov eax, dword [0x5868f0]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jb 0x55af05
mov byte [edi + 0xac], 1
mov eax, dword [edi + 0xb4]
call fcn.0044b9d0
mov edx, eax
mov eax, dword [0x586a88]
mov eax, dword [eax]
call fcn.00540f20
mov eax, dword [0x586d8c]
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 [0x586dc0]
mov cl, 0x20
call fcn.00403794
mov al, byte [edi + 0x39]
and eax, 0xff
bt dword [esp + 0x7c], eax
jb 0x55af84
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.0044b9d0
mov ecx, eax
xor edx, edx
mov eax, edi
call fcn.00556688
mov eax, dword [0x586ac8]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jae 0x55b0cc
mov eax, dword [0x586aa0]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jae 0x55afbc
mov eax, dword [0x586a84]
cmp byte [eax], 0
je 0x55b0cc
mov eax, dword [esp + 0x24]
cmp dword [eax + 0xc0], 1
jle 0x55b0cc
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 0x55b008
cmp byte [edi + 0x11], 0
jne 0x55b008
mov eax, dword [esp + 0x24]
mov edx, dword [eax + 0x58]
mov eax, dword [edi + 0xb4]
call fcn.00445370
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 0x55b051
cmp byte [edi + 0x10], 0
jne 0x55b051
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.004236d0
and dword [edi + 0xa8], 0xffffdfff
mov byte [esp + 0x10], 1
cmp byte [esp + 0x10], 0
je 0x55b06b
push 0xffffffffffffffff
push 0
mov eax, dword [esp + 0x30]
call fcn.0044b9d0
push eax
call sub.user32.dll_InvalidateRect
push 0
mov eax, dword [esp + 0x2c]
call fcn.0044b9d0
xor ecx, ecx
mov edx, 0x85
call fcn.0051cc60
jmp 0x55b0cc
mov eax, dword [edi + 0xb4]
mov edx, dword [0x4410f8]
call fcn.00403efc
test al, al
je 0x55b0b2
mov eax, dword [edi + 0xb4]
call fcn.0044b9d0
mov edx, eax
mov eax, dword [0x586a88]
mov eax, dword [eax]
call fcn.00540f20
mov eax, dword [0x5868f0]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jb 0x55b0cc
mov byte [edi + 0xac], 1
mov eax, edi
call fcn.0054eb80
mov eax, dword [0x5867b4]
cmp dword [eax], 0
je 0x55b108
mov eax, dword [0x5867b4]
mov eax, dword [eax]
cmp dword [eax + 0xf4], 0
je 0x55b108
lea edx, [esp + 0x74]
xor eax, eax
call fcn.005177b4
lea edx, [esp + 0x74]
mov eax, dword [0x586b7c]
mov eax, dword [eax]
call fcn.00466294
mov esi, dword [edi + 0x74]
test esi, esi
je case.0x55a100.0
cmp byte [esi + 0x30], 0
je case.0x55a100.0
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x38]
jmp case.0x55a100.0
xor edx, edx
mov eax, edi
call fcn.005589e0
test al, al
je case.0x55a100.0
cmp dword [edi + 0xb4], 0
je case.0x55a100.0
mov eax, dword [0x5867b4]
cmp dword [eax], 0
je 0x55b1a6
mov eax, dword [0x5867b4]
mov eax, dword [eax]
cmp byte [eax + 0x89], 0
je 0x55b1a6
mov eax, dword [0x5867b4]
mov eax, dword [eax]
cmp byte [eax + 0xb0], 0
je 0x55b1a6
mov eax, dword [0x5867b4]
mov eax, dword [eax]
cmp dword [eax + 0xc0], 0
je 0x55b1a6
mov eax, dword [0x5867b4]
mov eax, dword [eax]
mov eax, dword [eax + 0xc0]
mov edx, dword [eax]
call dword [edx + 0x50]
test al, al
jne 0x55b1a6
mov eax, dword [0x5867b4]
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.00557b64
mov ebp, eax
mov eax, edi
call fcn.0055782c
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.00543e54
test al, al
jne 0x55b33e
test byte [ebp + 0x1c], 0x10
jne 0x55b33e
mov eax, edi
call fcn.00559ef8
test al, al
jne 0x55b33e
mov eax, dword [0x5868f0]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jb 0x55b218
mov byte [edi + 0xac], 0
mov eax, dword [0x586d8c]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jb 0x55b250
mov eax, dword [0x586dc0]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jb 0x55b250
lea eax, [edi + 0x3c]
mov dl, 1
call fcn.004a0418
lea eax, [edi + 0x40]
call fcn.004a05dc
mov byte [esp + 0x10], 0
mov eax, dword [0x586ac8]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jae 0x55b2e7
mov eax, edi
call fcn.005573a8
test al, al
jne 0x55b2e7
cmp dword [esi + 0x14], 0x64
jne 0x55b27f
cmp dword [esi + 0x50], 0x64
je 0x55b2e7
mov eax, dword [esi + 0x1c]
mov edx, dword [edi + 0xb4]
cmp eax, dword [edx + 0x70]
je 0x55b2a6
cmp byte [edi + 0x11], 0
jne 0x55b2a6
mov edx, dword [esi + 0x1c]
mov eax, dword [edi + 0xb4]
call fcn.00445370
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 0x55b2e7
cmp byte [edi + 0x10], 0
jne 0x55b2e7
or dword [edi + 0xa8], 0x2000
mov edx, dword [esi + 0x2c]
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x68]
call fcn.004236d0
and dword [edi + 0xa8], 0xffffdfff
mov byte [esp + 0x10], 1
mov eax, dword [edi + 0xb4]
cmp byte [eax + 0x57], 0
je 0x55b33e
mov eax, dword [0x586ac8]
mov dl, byte [edi + 0x39]
and edx, 0xff
bt dword [eax], edx
jae 0x55b33e
mov byte [edi + 0xad], 1
cmp byte [esp + 0x10], 0
je 0x55b327
push 0xffffffffffffffff
push 0
mov eax, dword [esp + 0x34]
call fcn.0044b9d0
push eax
call sub.user32.dll_InvalidateRect
push 0
mov eax, dword [esp + 0x30]
call fcn.0044b9d0
xor ecx, ecx
mov edx, 0x85
call fcn.0051cc60
mov esi, dword [edi + 0x74]
test esi, esi
je 0x55b352
cmp byte [esi + 0x30], 0
je 0x55b352
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x38]
mov eax, edi
call fcn.0054eb80
jmp case.0x55a100.0
mov eax, edi
call fcn.0055d124
jmp case.0x55a100.0
lea eax, [esp + 0x34]
push eax
mov eax, edi
call fcn.00557e00
push eax
call sub.user32.dll_GetWindowRect
test eax, eax
je 0x55b3ba
lea eax, [esp + 0x34]
xor edx, edx
call fcn.00533ffc
mov edx, dword [ebp + 8]
cmp eax, dword [edx + 0x10]
je 0x55b39d
or dword [edi + 0xa8], 0x8000
lea eax, [esp + 0x34]
xor edx, edx
call fcn.00534010
mov edx, dword [ebp + 8]
cmp eax, dword [edx + 0x14]
je 0x55b3ba
or dword [edi + 0xa8], 0x10000
xor edx, edx
mov eax, edi
call fcn.005589e0
test al, al
je case.0x55a100.0
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x18]
test dl, 1
jne case.0x55a100.0
test dl, 2
jne case.0x55a100.0
or dword [edi + 0xa8], 0x200000
jmp case.0x55a100.0
xor edx, edx
mov eax, edi
call fcn.005589e0
test al, al
je case.0x55a100.0
and dword [edi + 0xa8], 0xffdfffff
jmp case.0x55a100.0
xor edx, edx
mov eax, edi
call fcn.005589e0
test al, al
je case.0x55a100.0
mov byte [edi + 0xad], 1
mov eax, edi
call fcn.0055500c
test al, al
je 0x55b466
mov eax, dword [edi + 0xb4]
mov edx, dword [0x4410f8]
call fcn.00403efc
test al, al
je 0x55b466
mov eax, dword [edi + 0xb4]
call fcn.0044b9d0
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x55b466
mov eax, edi
call fcn.00556f0c
mov eax, edi
call fcn.00558db4
test al, al
je 0x55b583
mov eax, dword [edi + 0xb4]
mov edx, dword [0x5810ac]
call fcn.00403efc
test al, al
je 0x55b504
mov eax, dword [edi + 0xb4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
call fcn.00552c9c
mov ebp, eax
mov eax, dword [esp + 0x30]
call fcn.00552c9c
test eax, eax
je 0x55b56d
mov eax, ebp
call fcn.00448700
dec eax
test eax, eax
jl 0x55b56d
inc eax
mov dword [esp + 0x14], eax
xor esi, esi
mov eax, ebp
call fcn.00448700
cmp esi, eax
jge 0x55b4fb
mov edx, esi
mov eax, ebp
call fcn.004486c4
test byte [eax + 0x1c], 8
jne 0x55b4fb
push 0
mov edx, esi
mov eax, ebp
call fcn.004486c4
mov ecx, 0x140001
mov edx, 0xa100
call fcn.0044639c
inc esi
dec dword [esp + 0x14]
jne 0x55b4c7
jmp 0x55b56d
mov eax, dword [edi + 0xb4]
mov edx, dword [0x4410f8]
call fcn.00403efc
test al, al
je 0x55b56d
mov ebp, dword [edi + 0xb4]
mov eax, ebp
call fcn.00448700
dec eax
test eax, eax
jl 0x55b56d
inc eax
mov dword [esp + 0x14], eax
xor esi, esi
mov eax, ebp
call fcn.00448700
cmp esi, eax
jge 0x55b566
mov edx, esi
mov eax, ebp
call fcn.004486c4
test byte [eax + 0x1c], 8
jne 0x55b566
push 0
mov edx, esi
mov eax, ebp
call fcn.004486c4
mov ecx, 0x140001
mov edx, 0xa100
call fcn.0044639c
inc esi
dec dword [esp + 0x14]
jne 0x55b532
mov eax, dword [edi + 0xa8]
and eax, 0xffff7fff
and eax, 0xfffeffff
mov dword [edi + 0xa8], eax
cmp dword [edi + 0xa0], 0
je 0x55b59c
mov eax, dword [edi + 0xa0]
cmp byte [eax + 0x30], 0
jne case.0x55a100.0
lea eax, [edi + 0x3c]
xor edx, edx
call fcn.004a0418
lea eax, [edi + 0x40]
call fcn.004a05dc
jmp case.0x55a100.0
mov eax, edi
call fcn.00554b08
jmp case.0x55a100.0
xor edx, edx
mov eax, edi
call fcn.005589e0
test al, al
je case.0x55a100.0
mov eax, dword [edi + 0xb4]
mov edx, dword [0x4410f8]
call fcn.00403efc
test al, al
je 0x55b6e2
mov eax, edi
call fcn.0055500c
test al, al
je 0x55b66b
mov eax, dword [edi + 0xb4]
call fcn.0044b9d0
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x55b66b
push 0
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x30]
call fcn.0044b9d0
mov ecx, 0x110001
mov edx, 0xa100
call fcn.0051cc60
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x30]
call fcn.0044b9d0
xor ecx, ecx
mov edx, 0x17
call fcn.0051cb50
mov eax, dword [edi + 0xb4]
test byte [eax + 0x1c], 0x10
je 0x55b66b
push 0x105
push 0
push 0
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x30]
call fcn.0044b9d0
push eax
call sub.user32.dll_RedrawWindow
mov eax, edi
call fcn.00558480
test al, al
je 0x55b77e
mov byte [edi + 0xad], 1
mov eax, edi
call fcn.0055d704
test al, al
jne 0x55b77e
push 0
mov ecx, 0x140001
mov edx, 0xa100
mov eax, dword [edi + 0xb4]
call fcn.0044639c
push 0
lea eax, [esp + 0x68]
push eax
mov dx, 0x52
xor eax, eax
call fcn.00408158
mov edx, eax
xor ecx, ecx
mov eax, 0xa100
call fcn.00533bd0
lea eax, [esp + 0x64]
push eax
mov eax, dword [edi + 0xb4]
call fcn.0044b9d0
pop edx
call fcn.00518224
jmp 0x55b77e
mov eax, edi
call fcn.0055500c
test al, al
je 0x55b777
mov eax, dword [edi + 0xb4]
cmp dword [eax + 0x30], 0
je 0x55b777
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x30]
call fcn.0044b9d0
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x55b777
push 0
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x30]
call fcn.0044b9d0
mov ecx, 0x110001
mov edx, 0xa100
call fcn.0051cc60
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x30]
call fcn.0044b9d0
xor ecx, ecx
mov edx, 0x17
call fcn.0051cb50
mov eax, dword [edi + 0xb4]
test byte [eax + 0x1c], 0x10
je 0x55b777
push 0x105
push 0
push 0
mov eax, dword [edi + 0xb4]
mov eax, dword [eax + 0x30]
call fcn.0044b9d0
push eax
call sub.user32.dll_RedrawWindow
mov byte [edi + 0xad], 1
lea eax, [edi + 0x3c]
xor edx, edx
call fcn.004a0418
lea eax, [edi + 0x40]
call fcn.004a05dc
jmp case.0x55a100.0
mov eax, edi
call fcn.0054eb80
jmp case.0x55a100.0
mov eax, edi
call fcn.0054eb80
mov eax, ebx
add esp, 0x9c
pop ebp
pop edi
pop esi
pop ebx
ret