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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [0x551644]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
mov eax, dword [ebx]
mov edx, dword [eax + 0x10]
push esi
push edi
mov dword [ebp - 0x1c], ebx
call edx
mov dword [ebp - 0x24], eax
cmp eax, 0xffffffff
je 0x4ac5f0
cmp eax, 0xfffffffe
jne 0x4ac874
xor edi, edi
mov dword [ebp - 0x18], edi
test edi, edi
js 0x4ac70c
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebx + 0x18]
sub edx, ecx
mov eax, 0x2aaaaaab
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jge 0x4ac70c
mov edx, dword [ebp - 0x18]
mov esi, dword [edx + ecx]
test esi, esi
je 0x4ac70c
mov eax, edx
mov eax, dword [eax + ecx + 8]
test eax, eax
je 0x4ac63a
mov edx, dword [eax + 0xc]
jmp 0x4ac63c
xor edx, edx
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + ecx + 4]
imul eax, edx
add eax, esi
je 0x4ac70c
cmp dword [eax + 4], 3
je 0x4ac70c
mov ecx, 0x5537d8
call fcn.00405670
mov eax, dword [0x552ae0]
mov edx, dword [eax + 0x18]
test edx, edx
jne 0x4ac672
xor ecx, ecx
jmp 0x4ac688
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x4ac67e
mov esi, dword [ecx + 0xc]
jmp 0x4ac680
xor esi, esi
mov ecx, dword [eax + 0x1c]
imul ecx, esi
add ecx, edx
mov edx, dword [edi*8 + 0x54e9c4]
add edx, edx
mov eax, dword [ecx + edx*8 + 0x14]
mov esi, dword [ecx + edx*8 + 0x18]
cmp eax, esi
je 0x4ac6cb
mov edx, dword [ecx + 0x10]
mov ecx, eax
sub ecx, edx
add ecx, 2
lea edx, [eax + edx + 1]
jmp 0x4ac6b0
cmp byte [edx], 0
je 0x4ac6be
cmp byte [ecx], 0
je 0x4ac74d
add eax, 3
add edx, 3
add ecx, 3
cmp eax, esi
jne 0x4ac6b0
mov ecx, 0x5537d8
call fcn.00405670
mov eax, dword [0x552ae0]
mov edx, dword [eax + 0x18]
test edx, edx
jne 0x4ac6e5
xor ecx, ecx
jmp 0x4ac6fb
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x4ac6f1
mov esi, dword [ecx + 0xc]
jmp 0x4ac6f3
xor esi, esi
mov ecx, dword [eax + 0x1c]
imul ecx, esi
add ecx, edx
mov edx, dword [edi*8 + 0x54e9c8]
push edx
call fcn.004326b0
test al, al
jne 0x4ac74d
add dword [ebp - 0x18], 0xc
inc edi
cmp edi, 6
jl 0x4ac5f5
cmp dword [ebp - 0x24], 0xffffffff
jne 0x4ac874
mov esi, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x18]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
xor edi, edi
test eax, eax
jle 0x4ac874
xor edx, edx
mov dword [ebp - 0x18], edx
jmp 0x4ac787
mov eax, dword [ebx]
mov edx, dword [eax + 0x2c]
mov ecx, ebx
call edx
cmp edi, eax
je 0x4ac71a
mov esi, dword [ebx]
mov eax, dword [esi + 0x2c]
mov ecx, ebx
call eax
mov edx, dword [esi + 0x18]
push eax
mov ecx, ebx
call edx
mov eax, dword [ebx]
mov edx, dword [eax + 0x28]
push edi
mov ecx, ebx
call edx
mov eax, dword [ebx]
mov edx, dword [eax + 0x1c]
push edi
mov ecx, ebx
call edx
jmp 0x4ac874
mov edx, dword [ebp - 0x18]
test edi, edi
js 0x4ac84f
cmp edi, eax
jge 0x4ac84f
mov ecx, dword [edx + esi]
test ecx, ecx
je 0x4ac84f
mov eax, dword [edx + esi + 8]
test eax, eax
je 0x4ac7af
mov eax, dword [eax + 0xc]
jmp 0x4ac7b1
xor eax, eax
mov esi, dword [edx + esi + 4]
imul esi, eax
add esi, ecx
je 0x4ac84f
mov eax, dword [esi + 4]
push 0
mov ecx, esi
mov dword [ebp - 0x20], eax
call fcn.0049dbb0
cmp eax, 2
jl 0x4ac7d7
mov dword [ebp - 0x24], edi
mov ecx, dword [esi + 0x64]
sub ecx, dword [esi + 0x60]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
je 0x4ac84f
mov edx, dword [ebp - 0x20]
cmp edx, dword [esi + 4]
je 0x4ac84f
mov ecx, dword [esi + 0x3c]
xor eax, eax
cmp byte [esi + 0x2c], 0
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0x38]
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], ecx
je 0x4ac816
add esi, 0x30
jmp 0x4ac819
add esi, 0x24
mov eax, dword [esi]
mov esi, dword [esi + 4]
push esi
push eax
lea edx, [ebp - 0x14]
push edx
call dword [sym.imp.USER32.dll_OffsetRect]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebx]
mov edx, dword [edx + 8]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [ebp - 0x10]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xc]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 8]
mov dword [eax + 0xc], ecx
mov ecx, ebx
call edx
mov esi, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x18]
add dword [ebp - 0x18], 0xc
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
inc edi
add eax, edx
cmp edi, eax
jl 0x4ac784
mov ecx, dword [ebx + 0x54]
mov dword [ebp - 0x18], ecx
cmp ecx, dword [ebx + 0x58]
je 0x4acb3a
mov esi, dword [ecx]
mov dword [ebp - 0x2c], esi
test esi, esi
jne 0x4ac890
xor eax, eax
jmp 0x4ac8a6
mov eax, dword [ecx + 8]
test eax, eax
je 0x4ac89c
mov edx, dword [eax + 0xc]
jmp 0x4ac89e
xor edx, edx
mov eax, dword [ecx + 4]
imul eax, edx
add eax, esi
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x28], 0xffffffff
test esi, esi
jne 0x4ac8bb
xor eax, eax
jmp 0x4ac8d1
mov eax, dword [ecx + 8]
test eax, eax
je 0x4ac8c7
mov edx, dword [eax + 0xc]
jmp 0x4ac8c9
xor edx, edx
mov eax, dword [ecx + 4]
imul eax, edx
add eax, esi
mov edi, dword [eax + 0x2c]
mov dword [ebp - 0x30], edi
test esi, esi
jne 0x4ac8df
xor eax, eax
jmp 0x4ac8f5
mov eax, dword [ecx + 8]
test eax, eax
je 0x4ac8eb
mov edx, dword [eax + 0xc]
jmp 0x4ac8ed
xor edx, edx
mov eax, dword [ecx + 4]
imul eax, edx
add eax, esi
cmp edi, dword [eax + 0x30]
je 0x4ac976
mov esi, dword [edi]
test esi, esi
js 0x4ac94e
mov edi, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x18]
sub ecx, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp esi, ecx
jge 0x4ac94e
lea edx, [esi + esi*2]
mov ecx, dword [edi + edx*4]
lea eax, [edi + edx*4]
test ecx, ecx
je 0x4ac94e
mov edx, dword [eax + 8]
test edx, edx
je 0x4ac935
mov edx, dword [edx + 0xc]
jmp 0x4ac937
xor edx, edx
mov eax, dword [eax + 4]
imul eax, edx
add eax, ecx
je 0x4ac94e
mov eax, dword [eax + 4]
cmp eax, 1
je 0x4ac960
cmp eax, 2
je 0x4ac969
add dword [ebp - 0x30], 4
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x18]
jmp 0x4ac8d7
mov dword [ebp - 0x28], 0
jmp 0x4ac970
mov dword [ebp - 0x28], 1
mov ecx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x28]
je 0x4acb2b
cmp eax, 0xffffffff
je 0x4aca42
test esi, esi
jne 0x4ac993
xor eax, eax
jmp 0x4ac9a9
mov eax, dword [ecx + 8]
test eax, eax
je 0x4ac99f
mov edx, dword [eax + 0xc]
jmp 0x4ac9a1
xor edx, edx
mov eax, dword [ecx + 4]
imul eax, edx
add eax, esi
mov ecx, dword [ebp - 0x20]
test ecx, ecx
je 0x4ac9bf
cmp ecx, 1
je 0x4ac9bf
xor ecx, ecx
xor esi, esi
xor edx, edx
xor edi, edi
jmp 0x4aca1d
lea ecx, [ecx + ecx*2]
mov esi, dword [eax + ecx*4]
lea ecx, [eax + ecx*4]
test esi, esi
jne 0x4ac9d0
xor eax, eax
jmp 0x4ac9e6
mov eax, dword [ecx + 8]
test eax, eax
je 0x4ac9dc
mov edx, dword [eax + 0xc]
jmp 0x4ac9de
xor edx, edx
mov eax, dword [ecx + 4]
imul eax, edx
add eax, esi
mov edx, dword [eax + 0xc]
mov edi, dword [eax + 8]
mov dword [ebp - 0x34], edx
test esi, esi
jne 0x4ac9f7
xor eax, eax
jmp 0x4aca0d
mov eax, dword [ecx + 8]
test eax, eax
je 0x4aca03
mov edx, dword [eax + 0xc]
jmp 0x4aca05
xor edx, edx
mov eax, dword [ecx + 4]
imul eax, edx
add eax, esi
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
lea edx, [edi + ecx]
mov edi, dword [ebp - 0x34]
mov esi, eax
add edi, eax
mov eax, dword [ebx]
mov ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], esi
mov dword [eax + 8], edx
mov dword [eax + 0xc], edi
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 8]
mov ecx, ebx
call eax
mov ecx, dword [ebp - 0x18]
cmp dword [ebp - 0x28], 0xffffffff
je 0x4acb05
mov esi, dword [ecx]
test esi, esi
jne 0x4aca56
xor eax, eax
jmp 0x4aca6c
mov eax, dword [ecx + 8]
test eax, eax
je 0x4aca62
mov edx, dword [eax + 0xc]
jmp 0x4aca64
xor edx, edx
mov eax, dword [ecx + 4]
imul eax, edx
add eax, esi
mov ecx, dword [ebp - 0x28]
test ecx, ecx
je 0x4aca82
cmp ecx, 1
je 0x4aca82
xor ecx, ecx
xor esi, esi
xor edx, edx
xor edi, edi
jmp 0x4acae0
lea ecx, [ecx + ecx*2]
mov esi, dword [eax + ecx*4]
lea ecx, [eax + ecx*4]
test esi, esi
jne 0x4aca93
xor eax, eax
jmp 0x4acaa9
mov eax, dword [ecx + 8]
test eax, eax
je 0x4aca9f
mov edx, dword [eax + 0xc]
jmp 0x4acaa1
xor edx, edx
mov eax, dword [ecx + 4]
imul eax, edx
add eax, esi
mov edx, dword [eax + 0xc]
mov edi, dword [eax + 8]
mov dword [ebp - 8], edx
test esi, esi
jne 0x4acaba
xor eax, eax
jmp 0x4acad0
mov eax, dword [ecx + 8]
test eax, eax
je 0x4acac6
mov edx, dword [eax + 0xc]
jmp 0x4acac8
xor edx, edx
mov eax, dword [ecx + 4]
imul eax, edx
add eax, esi
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
lea edx, [edi + ecx]
mov edi, dword [ebp - 8]
mov esi, eax
add edi, eax
mov eax, dword [ebx]
mov ebx, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], esi
mov dword [eax + 8], edx
mov dword [eax + 0xc], edi
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 8]
mov ecx, ebx
call eax
mov ecx, dword [ebp - 0x18]
mov esi, dword [ecx]
test esi, esi
jne 0x4acb0f
xor eax, eax
jmp 0x4acb25
mov eax, dword [ecx + 8]
test eax, eax
je 0x4acb1b
mov edx, dword [eax + 0xc]
jmp 0x4acb1d
xor edx, edx
mov eax, dword [ecx + 4]
imul eax, edx
add eax, esi
mov edx, dword [ebp - 0x28]
mov dword [eax + 0x28], edx
add ecx, 0xc
mov dword [ebp - 0x18], ecx
cmp ecx, dword [ebx + 0x58]
jne 0x4ac883
mov esi, dword [ebx + 0x64]
mov ecx, dword [ebx + 0x68]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x18], 0
test eax, eax
jle 0x4acd4d
xor edi, edi
cmp dword [ebp - 0x18], 0
jl 0x4acd26
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebx + 0x18]
sub edx, ecx
mov eax, 0x2aaaaaab
imul edx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x18], eax
jge 0x4acd26
mov eax, dword [edi + ecx]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x4acd26
mov eax, dword [edi + ecx + 8]
test eax, eax
je 0x4acba9
mov edx, dword [eax + 0xc]
jmp 0x4acbab
xor edx, edx
mov eax, dword [edi + ecx + 4]
imul eax, edx
add eax, dword [ebp - 0x1c]
je 0x4acd26
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], eax
cmp eax, 3
je 0x4acd26
mov eax, dword [esi + edi]
test eax, eax
jne 0x4acbd5
xor ecx, ecx
jmp 0x4acbed
mov ecx, dword [esi + edi + 8]
test ecx, ecx
je 0x4acbe2
mov edx, dword [ecx + 0xc]
jmp 0x4acbe4
xor edx, edx
mov ecx, dword [esi + edi + 4]
imul ecx, edx
add ecx, eax
mov ecx, dword [ecx + 0x18]
mov edx, eax
mov dword [ebp - 0x20], ecx
test edx, edx
jne 0x4acbfd
xor esi, esi
jmp 0x4acc15
mov ecx, dword [esi + edi + 8]
test ecx, ecx
je 0x4acc0a
mov ecx, dword [ecx + 0xc]
jmp 0x4acc0c
xor ecx, ecx
mov esi, dword [esi + edi + 4]
imul esi, ecx
add esi, edx
mov eax, dword [ebp - 0x1c]
sub eax, 0
je 0x4acc32
dec eax
je 0x4acc29
mov dword [esi + 0x18], 0xffffffff
jmp 0x4acc39
mov dword [esi + 0x18], 1
jmp 0x4acc39
mov dword [esi + 0x18], 0
mov edx, dword [ebx + 0x64]
mov esi, dword [edx + edi]
add edx, edi
test esi, esi
jne 0x4acc49
xor eax, eax
jmp 0x4acc5f
mov eax, dword [edx + 8]
test eax, eax
je 0x4acc55
mov ecx, dword [eax + 0xc]
jmp 0x4acc57
xor ecx, ecx
mov eax, dword [edx + 4]
imul eax, ecx
add eax, esi
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [eax + 0x18]
je 0x4accaa
test esi, esi
jne 0x4acc6f
xor eax, eax
jmp 0x4acc85
mov eax, dword [edx + 8]
test eax, eax
je 0x4acc7b
mov ecx, dword [eax + 0xc]
jmp 0x4acc7d
xor ecx, ecx
mov eax, dword [edx + 4]
imul eax, ecx
add eax, esi
mov esi, dword [eax + 0x1c]
mov edx, dword [ebx]
mov edx, dword [edx + 8]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], esi
mov esi, dword [eax + 0x20]
mov dword [ecx + 4], esi
mov esi, dword [eax + 0x24]
mov eax, dword [eax + 0x28]
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], eax
mov ecx, ebx
call edx
mov eax, dword [ebx + 0x64]
mov ecx, dword [eax + edi]
test ecx, ecx
jne 0x4accb8
xor eax, eax
jmp 0x4accd0
mov edx, dword [eax + edi + 8]
test edx, edx
je 0x4accc5
mov edx, dword [edx + 0xc]
jmp 0x4accc7
xor edx, edx
mov eax, dword [eax + edi + 4]
imul eax, edx
add eax, ecx
mov ecx, eax
call fcn.004ac560
test eax, eax
je 0x4acd26
mov eax, dword [ebx + 0x64]
mov ecx, dword [eax + edi]
test ecx, ecx
jne 0x4acce9
xor eax, eax
jmp 0x4acd01
mov edx, dword [eax + edi + 8]
test edx, edx
je 0x4accf6
mov edx, dword [edx + 0xc]
jmp 0x4accf8
xor edx, edx
mov eax, dword [eax + edi + 4]
imul eax, edx
add eax, ecx
mov esi, dword [eax + 0x1c]
mov edx, dword [ebx]
mov edx, dword [edx + 8]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], esi
mov esi, dword [eax + 0x20]
mov dword [ecx + 4], esi
mov esi, dword [eax + 0x24]
mov eax, dword [eax + 0x28]
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], eax
mov ecx, ebx
call edx
mov esi, dword [ebx + 0x64]
mov ecx, dword [ebx + 0x68]
inc dword [ebp - 0x18]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
add edi, 0xc
cmp dword [ebp - 0x18], eax
jl 0x4acb63
mov edi, dword [ebx + 0x74]
test edi, edi
je 0x4aced6
mov esi, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x18]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 5
jle 0x4aced6
mov edx, dword [esi + 0x3c]
test edx, edx
je 0x4aced6
mov eax, dword [esi + 0x44]
test eax, eax
je 0x4acd90
mov ecx, dword [eax + 0xc]
jmp 0x4acd92
xor ecx, ecx
mov eax, dword [esi + 0x40]
imul eax, ecx
add eax, edx
je 0x4aced6
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], eax
cmp eax, 3
je 0x4aced6
mov esi, dword [ebx + 0x7c]
test esi, esi
je 0x4acdbb
mov edx, dword [esi + 0xc]
jmp 0x4acdbd
xor edx, edx
mov ecx, dword [ebx + 0x78]
mov eax, ecx
imul eax, edx
mov eax, dword [eax + edi + 0x18]
test esi, esi
je 0x4acdd2
mov esi, dword [esi + 0xc]
jmp 0x4acdd4
xor esi, esi
mov edx, dword [ebp - 0x1c]
imul ecx, esi
add ecx, edi
sub edx, 0
je 0x4acdf6
dec edx
je 0x4acded
mov dword [ecx + 0x18], 0xffffffff
jmp 0x4acdfd
mov dword [ecx + 0x18], 1
jmp 0x4acdfd
mov dword [ecx + 0x18], 0
mov esi, dword [ebx + 0x74]
test esi, esi
jne 0x4ace08
xor ecx, ecx
jmp 0x4ace1e
mov ecx, dword [ebx + 0x7c]
test ecx, ecx
je 0x4ace14
mov edx, dword [ecx + 0xc]
jmp 0x4ace16
xor edx, edx
mov ecx, dword [ebx + 0x78]
imul ecx, edx
add ecx, esi
cmp eax, dword [ecx + 0x18]
je 0x4ace66
test esi, esi
jne 0x4ace2b
xor eax, eax
jmp 0x4ace41
mov eax, dword [ebx + 0x7c]
test eax, eax
je 0x4ace37
mov ecx, dword [eax + 0xc]
jmp 0x4ace39
xor ecx, ecx
mov eax, dword [ebx + 0x78]
imul eax, ecx
add eax, esi
mov esi, dword [eax + 0x1c]
mov edx, dword [ebx]
mov edx, dword [edx + 8]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], esi
mov esi, dword [eax + 0x20]
mov dword [ecx + 4], esi
mov esi, dword [eax + 0x24]
mov eax, dword [eax + 0x28]
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], eax
mov ecx, ebx
call edx
mov edx, dword [ebx + 0x74]
test edx, edx
jne 0x4ace71
xor ecx, ecx
jmp 0x4ace87
mov eax, dword [ebx + 0x7c]
test eax, eax
je 0x4ace7d
mov eax, dword [eax + 0xc]
jmp 0x4ace7f
xor eax, eax
mov ecx, dword [ebx + 0x78]
imul ecx, eax
add ecx, edx
call fcn.004ac560
test eax, eax
je 0x4aced6
mov edx, dword [ebx + 0x74]
test edx, edx
jne 0x4ace9b
xor eax, eax
jmp 0x4aceb1
mov eax, dword [ebx + 0x7c]
test eax, eax
je 0x4acea7
mov ecx, dword [eax + 0xc]
jmp 0x4acea9
xor ecx, ecx
mov eax, dword [ebx + 0x78]
imul eax, ecx
add eax, edx
mov esi, dword [eax + 0x1c]
mov edx, dword [ebx]
mov edx, dword [edx + 8]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], esi
mov esi, dword [eax + 0x20]
mov dword [ecx + 4], esi
mov esi, dword [eax + 0x24]
mov eax, dword [eax + 0x28]
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], eax
mov ecx, ebx
call edx
mov edi, dword [ebx + 0x80]
test edi, edi
je 0x4ad089
mov esi, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x18]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 6
jle 0x4ad089
mov edx, dword [esi + 0x48]
test edx, edx
je 0x4ad089
mov eax, dword [esi + 0x50]
test eax, eax
je 0x4acf1c
mov ecx, dword [eax + 0xc]
jmp 0x4acf1e
xor ecx, ecx
mov eax, dword [esi + 0x4c]
imul eax, ecx
add eax, edx
je 0x4ad089
mov esi, dword [eax + 4]
cmp esi, 3
je 0x4ad089
mov edx, dword [ebx + 0x88]
test edx, edx
je 0x4acf47
mov eax, dword [edx + 0xc]
jmp 0x4acf49
xor eax, eax
mov ecx, dword [ebx + 0x84]
imul eax, ecx
mov eax, dword [eax + edi + 0x18]
mov dword [ebp - 0x1c], eax
test edx, edx
je 0x4acf62
mov eax, dword [edx + 0xc]
jmp 0x4acf64
xor eax, eax
imul eax, ecx
mov ecx, esi
add eax, edi
sub ecx, 0
je 0x4acf85
dec ecx
je 0x4acf7c
mov dword [eax + 0x18], 0xffffffff
jmp 0x4acf8c
mov dword [eax + 0x18], 1
jmp 0x4acf8c
mov dword [eax + 0x18], 0
mov edx, dword [ebx + 0x80]
test edx, edx
jne 0x4acf9a
xor eax, eax
jmp 0x4acfb6
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x4acfa9
mov ecx, dword [eax + 0xc]
jmp 0x4acfab
xor ecx, ecx
mov eax, dword [ebx + 0x84]
imul eax, ecx
add eax, edx
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [eax + 0x18]
je 0x4ad007
test edx, edx
jne 0x4acfc6
xor eax, eax
jmp 0x4acfe2
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x4acfd5
mov ecx, dword [eax + 0xc]
jmp 0x4acfd7
xor ecx, ecx
mov eax, dword [ebx + 0x84]
imul eax, ecx
add eax, edx
mov esi, dword [eax + 0x1c]
mov edx, dword [ebx]
mov edx, dword [edx + 8]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], esi
mov esi, dword [eax + 0x20]
mov dword [ecx + 4], esi
mov esi, dword [eax + 0x24]
mov eax, dword [eax + 0x28]
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], eax
mov ecx, ebx
call edx
mov edx, dword [ebx + 0x80]
test edx, edx
jne 0x4ad015
xor ecx, ecx
jmp 0x4ad031
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x4ad024
mov eax, dword [eax + 0xc]
jmp 0x4ad026
xor eax, eax
mov ecx, dword [ebx + 0x84]
imul ecx, eax
add ecx, edx
call fcn.004ac560
test eax, eax
je 0x4ad089
mov edx, dword [ebx + 0x80]
test edx, edx
jne 0x4ad048
xor eax, eax
jmp 0x4ad064
mov eax, dword [ebx + 0x88]
test eax, eax
je 0x4ad057
mov ecx, dword [eax + 0xc]
jmp 0x4ad059
xor ecx, ecx
mov eax, dword [ebx + 0x84]
imul eax, ecx
add eax, edx
mov esi, dword [eax + 0x1c]
mov edx, dword [ebx]
mov edx, dword [edx + 8]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], esi
mov esi, dword [eax + 0x20]
mov dword [ecx + 4], esi
mov esi, dword [eax + 0x24]
mov eax, dword [eax + 0x28]
mov dword [ecx + 8], esi
mov dword [ecx + 0xc], eax
mov ecx, ebx
call edx
mov edx, dword [ebx + 0x8c]
test edx, edx
je 0x4ad190
mov esi, dword [ebx + 0x94]
test esi, esi
je 0x4ad0a6
mov eax, dword [esi + 0xc]
jmp 0x4ad0a8
xor eax, eax
mov ecx, dword [ebx + 0x90]
imul eax, ecx
cmp byte [eax + edx + 8], 0
je 0x4ad190
xor edi, edi
cmp esi, edi
je 0x4ad0c7
mov eax, dword [esi + 0xc]
jmp 0x4ad0c9
xor eax, eax
imul eax, ecx
mov ecx, dword [eax + edx + 0xc]
cmp dword [ecx - 0xc], edi
je 0x4ad0ed
cmp dword [eax + edx + 4], 2
jne 0x4ad0ed
lea ecx, [eax + edx + 0x34]
call fcn.0045bc90
cmp eax, edi
je 0x4ad190
mov edx, dword [ebx + 0x8c]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], edi
cmp edx, edi
jne 0x4ad107
xor eax, eax
jmp 0x4ad123
mov eax, dword [ebx + 0x94]
cmp eax, edi
je 0x4ad116
mov ecx, dword [eax + 0xc]
jmp 0x4ad118
xor ecx, ecx
mov eax, dword [ebx + 0x90]
imul eax, ecx
add eax, edx
xor edx, edx
xor ecx, ecx
xor esi, esi
xor edi, edi
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], edi
mov edx, dword [eax + 0xc]
cmp dword [edx - 0xc], ecx
je 0x4ad190
cmp dword [eax + 4], 2
ja 0x4ad190
mov esi, dword [eax + 0x24]
mov edi, dword [eax + 0x28]
xor edx, edx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0xc], esi
mov dword [ebp - 8], edi
mov ecx, dword [eax + 0x2c]
mov eax, dword [eax + 0x30]
push eax
push ecx
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebx]
mov edx, dword [edx + 8]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [ebp - 0x10]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xc]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 8]
mov dword [eax + 0xc], ecx
mov ecx, ebx
call edx
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x24]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004f4f8b
mov esp, ebp
pop ebp
ret