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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff70
push ebx
push esi
push edi
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
cmp byte [eax + 4], 0
jne 0x41cd33
mov eax, dword [ebp - 4]
mov byte [eax + 4], 1
xor eax, eax
push ebp
push 0x41c60a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp byte [eax + 0x14], 0
je 0x41c600
mov eax, dword [ebp - 4]
cmp dword [eax + 0x58], 0
je 0x41c600
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x58]
call fcn.00417730
cmp al, 2
je 0x41c55a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
call fcn.0040a380
dec eax
test eax, eax
jl 0x41c50b
inc eax
mov dword [ebp - 0x2c], eax
xor edi, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, edi
call fcn.0040a388
mov byte [eax + 0x1d], 0
inc edi
dec dword [ebp - 0x2c]
jne 0x41c4c4
jmp 0x41c50b
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x100]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
call fcn.0040a388
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x58]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2c]
call fcn.00417d38
mov eax, dword [ebp - 4]
inc dword [eax + 0x100]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
call fcn.0040a380
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x100]
jle 0x41c530
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x58]
call fcn.00417730
cmp al, 2
jne 0x41c4dd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
call fcn.0040a380
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x100]
jg 0x41c600
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x100], edx
jmp 0x41c600
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
call fcn.0040a380
dec eax
test eax, eax
jl 0x41c59c
inc eax
mov dword [ebp - 0x2c], eax
xor edi, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, edi
call fcn.0040a388
cmp byte [eax + 0x1d], 0
je 0x41c585
mov ebx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, edi
call fcn.0040a388
mov byte [eax + 0x1d], 0
inc edi
dec dword [ebp - 0x2c]
jne 0x41c570
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
call fcn.0040a380
dec eax
test eax, eax
jl 0x41c5ef
inc eax
mov dword [ebp - 0x2c], eax
xor edi, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, edi
call fcn.0040a388
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x58]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x2c]
call fcn.00417d38
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, edi
call fcn.0040a388
cmp byte [eax + 0x1d], 0
je 0x41c5e9
cmp edi, ebx
je 0x41c5e9
mov ebx, edi
inc edi
dec dword [ebp - 0x2c]
jne 0x41c5b2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov edx, ebx
call fcn.0040a388
mov byte [eax + 0x1d], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x41c614
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x41c726
inc eax
mov dword [ebp - 0x2c], eax
xor edi, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
call fcn.00419ecc
test al, al
je 0x41c6cb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x20]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x24]
pop edx
call fcn.0040a388
mov ebx, eax
mov eax, dword [ebx + 0x78]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x41c71c
inc eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x18], 0
mov eax, dword [ebx + 0x78]
mov edx, dword [ebp - 0x18]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov esi, eax
mov byte [esi + 0x3c], 0
mov eax, esi
call fcn.0041a038
xor edx, edx
mov eax, esi
call fcn.00419f14
lea ecx, [ebp - 0x80]
mov eax, dword [esi + 0x40]
mov dl, 1
call fcn.0041a31c
inc dword [ebp - 0x18]
dec dword [ebp - 0x30]
jne 0x41c693
jmp 0x41c71c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov byte [eax + 0x3c], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
call fcn.0041a038
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
xor edx, edx
call fcn.00419f14
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [eax + 0x40]
lea ecx, [ebp - 0x80]
mov dl, 1
call fcn.0041a31c
inc edi
dec dword [ebp - 0x2c]
jne 0x41c62e
mov ecx, dword [0x416aa0]
mov dl, 1
mov eax, dword [0x409160]
call fcn.0040a1ac
mov esi, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x41c8fa
inc eax
mov dword [ebp - 0x2c], eax
xor edi, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
call fcn.0041a14c
test al, al
je 0x41c8f0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
cmp byte [eax + 0x44], 0
jne 0x41c8f0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
call fcn.00419ecc
test al, al
jne 0x41c80c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
lea edx, [ebp - 0x48]
call fcn.00419eb8
mov eax, esi
call fcn.0040a224
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
push esi
push edi
lea edi, [eax + 0xc]
lea esi, [ebp - 0x48]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, esi
call fcn.0040a224
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
lea edx, [ebp - 0x90]
call fcn.00419e34
mov eax, dword [ebp - 0x20]
push esi
push edi
lea esi, [ebp - 0x90]
lea edi, [eax + 0xc]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
jmp 0x41c8f0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x20]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x24]
pop edx
call fcn.0040a388
mov ebx, eax
mov eax, dword [ebx + 0x78]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x41c8f0
inc eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x18], 0
mov eax, dword [ebx + 0x78]
mov edx, dword [ebp - 0x18]
mov ecx, dword [eax]
call dword [ecx + 0x18]
call fcn.0041a14c
test al, al
je 0x41c8e4
mov eax, dword [ebx + 0x78]
mov edx, dword [ebp - 0x18]
mov ecx, dword [eax]
call dword [ecx + 0x18]
cmp byte [eax + 0x44], 0
jne 0x41c8e4
mov eax, dword [ebx + 0x78]
mov edx, dword [ebp - 0x18]
mov ecx, dword [eax]
call dword [ecx + 0x18]
lea edx, [ebp - 0x48]
call fcn.00419eb8
mov eax, esi
call fcn.0040a224
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
push esi
push edi
lea edi, [eax + 0xc]
lea esi, [ebp - 0x48]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, esi
call fcn.0040a224
mov dword [ebp - 0x20], eax
mov eax, dword [ebx + 0x78]
mov edx, dword [ebp - 0x18]
mov ecx, dword [eax]
call dword [ecx + 0x18]
lea edx, [ebp - 0x90]
call fcn.00419e34
mov eax, dword [ebp - 0x20]
push esi
push edi
lea esi, [ebp - 0x90]
lea edi, [eax + 0xc]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
inc dword [ebp - 0x18]
dec dword [ebp - 0x30]
jne 0x41c857
inc edi
dec dword [ebp - 0x2c]
jne 0x41c754
mov byte [ebp - 0x21], 0
jmp 0x41cbd0
mov byte [ebp - 0x21], 1
mov dword [ebp - 0x1c], 2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x41cb09
inc eax
mov dword [ebp - 0x2c], eax
xor edi, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
cmp byte [eax + 0x44], 0
jne 0x41caff
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
call fcn.00419ecc
test al, al
jne 0x41c9e9
mov eax, esi
call fcn.0040a380
dec eax
test eax, eax
jl 0x41caff
inc eax
mov dword [ebp - 0x30], eax
xor ebx, ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
lea edx, [ebp - 0x68]
call fcn.00419e34
mov edx, ebx
mov eax, esi
call fcn.0040a388
push esi
push edi
lea esi, [eax + 0xc]
lea edi, [ebp - 0x78]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x58]
push eax
call sub.user32.dll_IntersectRect
test eax, eax
je 0x41c9de
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x58]
push eax
call sub.user32.dll_UnionRect
mov edx, ebx
mov eax, esi
call fcn.0040a388
push esi
push edi
lea edi, [eax + 0xc]
lea esi, [ebp - 0x58]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
inc ebx
dec dword [ebp - 0x30]
jne 0x41c96f
jmp 0x41caff
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x20]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
mov edx, edi
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, dword [eax + 0x40]
mov eax, dword [eax + 0x24]
pop edx
call fcn.0040a388
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 0x78]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x41caff
inc eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x18], 0
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 0x78]
mov edx, dword [ebp - 0x18]
mov ecx, dword [eax]
call dword [ecx + 0x18]
call fcn.0041a14c
test al, al
jne 0x41caf3
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 0x78]
mov edx, dword [ebp - 0x18]
mov ecx, dword [eax]
call dword [ecx + 0x18]
cmp byte [eax + 0x44], 0
jne 0x41caf3
mov eax, esi
call fcn.0040a380
dec eax
test eax, eax
jl 0x41caf3
inc eax
mov dword [ebp - 0x38], eax
xor ebx, ebx
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 0x78]
mov edx, dword [ebp - 0x18]
mov ecx, dword [eax]
call dword [ecx + 0x18]
lea edx, [ebp - 0x68]
call fcn.00419e34
mov edx, ebx
mov eax, esi
call fcn.0040a388
push esi
push edi
lea esi, [eax + 0xc]
lea edi, [ebp - 0x78]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x58]
push eax
call sub.user32.dll_IntersectRect
test eax, eax
je 0x41caed
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x58]
push eax
call sub.user32.dll_UnionRect
mov edx, ebx
mov eax, esi
call fcn.0040a388
push esi
push edi
lea edi, [eax + 0xc]
lea esi, [ebp - 0x58]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
inc ebx
dec dword [ebp - 0x38]
jne 0x41ca7d
inc dword [ebp - 0x18]
dec dword [ebp - 0x30]
jne 0x41ca38
inc edi
dec dword [ebp - 0x2c]
jne 0x41c928
dec dword [ebp - 0x1c]
jne 0x41c90e
xor edi, edi
jmp 0x41cbc1
xor ebx, ebx
jmp 0x41cbb1
cmp ebx, edi
je 0x41cbb0
mov edx, edi
mov eax, esi
call fcn.0040a388
push esi
push edi
lea esi, [eax + 0xc]
lea edi, [ebp - 0x68]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov edx, ebx
mov eax, esi
call fcn.0040a388
push esi
push edi
lea esi, [eax + 0xc]
lea edi, [ebp - 0x78]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x58]
push eax
call sub.user32.dll_IntersectRect
test eax, eax
je 0x41cbb0
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x58]
push eax
call sub.user32.dll_UnionRect
mov edx, edi
mov eax, esi
call fcn.0040a388
push esi
push edi
lea edi, [eax + 0xc]
lea esi, [ebp - 0x58]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov edx, ebx
mov eax, esi
call fcn.0040a388
call fcn.00402c10
mov byte [ebp - 0x21], 0
jmp 0x41cbc0
inc ebx
mov eax, esi
call fcn.0040a380
cmp ebx, eax
jl 0x41cb20
inc edi
mov eax, esi
call fcn.0040a380
cmp edi, eax
jl 0x41cb19
cmp byte [ebp - 0x21], 0
je 0x41c903
xor eax, eax
mov dword [ebp - 8], eax
mov eax, dword [0x4246c8]
call fcn.004177f8
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x20]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x24]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebp - 4]
cmp dword [eax + 0x48], 0
je 0x41cc3d
mov dl, 1
mov eax, dword [0x40ef5c]
call fcn.00410900
mov ebx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
call fcn.00414e18
call fcn.00410d3c
mov edx, eax
mov eax, ebx
call fcn.00410dbc
jmp 0x41cc64
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
push eax
call sub.user32.dll_GetDC
mov dword [ebp - 8], eax
mov dl, 1
mov eax, dword [0x40ef5c]
call fcn.00410900
mov ebx, eax
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00410dbc
mov eax, dword [ebp - 4]
cmp byte [eax + 5], 0
jne 0x41cc7f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
xor ecx, ecx
xor edx, edx
mov eax, ebx
call fcn.00410a9c
mov eax, esi
call fcn.0040a380
dec eax
test eax, eax
jl 0x41ccc0
inc eax
mov dword [ebp - 0x2c], eax
xor edi, edi
push ebp
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50]
push eax
push ebx
mov edx, edi
mov eax, esi
call fcn.0040a388
add eax, 0xc
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
call fcn.0041bfb0
pop ecx
inc edi
dec dword [ebp - 0x2c]
jne 0x41cc91
mov eax, dword [ebp - 4]
mov byte [eax + 5], 1
cmp dword [ebp - 8], 0
je 0x41ccdd
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
push eax
call sub.user32.dll_ReleaseDC
mov eax, ebx
call fcn.00402c10
mov eax, esi
call fcn.00402c10
mov eax, dword [0x4246c8]
call fcn.00417804
mov eax, dword [ebp - 4]
inc dword [eax + 0x2c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2c]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x28]
jle 0x41cd13
mov eax, dword [ebp - 4]
mov dword [eax + 0x2c], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x41cd2c
push 0
push 0
push 0x466
push eax
call sub.user32.dll_PostMessageA
mov eax, dword [ebp - 4]
mov byte [eax + 4], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret