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

Disassembly:
push 0xffffffffffffffff
push 0x541778
mov eax, dword fs:[0]
push eax
sub esp, 0x24
mov eax, dword [0x595790]
xor eax, esp
mov dword [esp + 0x20], eax
push ebx
push ebp
push edi
mov eax, dword [0x595790]
xor eax, esp
push eax
lea eax, [esp + 0x34]
mov dword fs:[0], eax
mov ebx, ecx
call fcn.00417384
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x41400d
push 0x80004005
call fcn.00401b40
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], 0
cmp byte [esi + 0x58], 0
mov edi, 1
mov ebp, ebx
je 0x41443e
lea eax, [esi + 0x60]
xor ecx, ecx
push eax
mov word [esp + 0x30], cx
mov dword [esp + 0x28], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [esp + 0x44]
test ebx, ebx
jbe 0x414375
movzx eax, word [edi]
xor ecx, ecx
cmp ax, cx
je 0x414375
add edi, 2
dec ebp
mov word [esp + 0x28], ax
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebp
cmp ax, 0xa
jne 0x4140c0
mov edx, dword [esi + 0x98]
mov eax, dword [esi + 0x90]
dec edx
cmp eax, edx
mov dword [esi + 0x8c], ecx
jge 0x41409c
inc eax
mov dword [esi + 0x90], eax
jmp 0x4140a7
push 1
push ecx
lea ecx, [esi + 0x78]
call fcn.00421a5f
mov eax, dword [esi + 0x80]
lea ecx, [esi + 0x78]
push 0x56e530
push eax
call fcn.00421c75
jmp 0x414369
mov edx, 0xd800
cmp ax, dx
jb 0x4140e5
mov edx, 0xdbff
cmp ax, dx
ja 0x4140e5
mov dx, word [edi]
add edi, 2
dec ebp
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebp
jmp 0x4140e7
xor edx, edx
mov word [esp + 0x2a], dx
mov edx, 0xd800
cmp ax, dx
jb 0x414100
mov edx, 0xdbff
cmp ax, dx
jbe 0x414132
cmp ax, 0x7f
jbe 0x41418a
mov edx, 0xff61
cmp ax, dx
jb 0x41411e
mov edx, 0xffdc
cmp ax, dx
jbe 0x41418a
mov edx, 0xffe8
cmp ax, dx
jb 0x414132
mov edx, 0xffee
cmp ax, dx
jbe 0x41418a
mov eax, dword [esi + 0x94]
dec eax
cmp dword [esi + 0x8c], eax
jl 0x414180
mov edx, dword [esi + 0x98]
mov eax, dword [esi + 0x90]
dec edx
cmp eax, edx
mov dword [esi + 0x8c], ecx
jge 0x414161
inc eax
mov dword [esi + 0x90], eax
jmp 0x41416c
push 1
push ecx
lea ecx, [esi + 0x78]
call fcn.00421a5f
mov eax, dword [esi + 0x80]
lea ecx, [esi + 0x78]
push 0x56e530
push eax
call fcn.00421c75
mov dword [esp + 0x1c], 2
jmp 0x414192
mov dword [esp + 0x1c], 1
mov eax, dword [esi + 0x90]
test eax, eax
jl 0x41448d
cmp eax, dword [esi + 0x80]
jge 0x41448d
mov ecx, dword [esi + 0x7c]
mov ebx, dword [esp + 0x10]
lea eax, [ecx + eax*4]
mov eax, dword [eax]
lea edi, [eax - 0x10]
add ebx, 0xfffffff0
cmp edi, ebx
je 0x414262
cmp dword [ebx + 0xc], 0
jl 0x414254
mov ecx, dword [edi]
cmp ecx, dword [ebx]
jne 0x414254
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [edi + 0xc], 0
lea ecx, [edi + 0xc]
jl 0x4141f7
cmp eax, dword [edi]
jne 0x4141f7
mov ebp, edi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x414232
mov ecx, dword [edi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 2
push ecx
mov ecx, eax
call edx
mov ebp, eax
test ebp, ebp
je 0x414488
mov eax, dword [edi + 4]
mov dword [ebp + 4], eax
mov eax, dword [edi + 4]
lea ecx, [eax + eax + 2]
push ecx
add edi, 0x10
lea edx, [eax + eax + 2]
push edi
push edx
lea eax, [ebp + 0x10]
push eax
call fcn.00515cf4
add esp, 0x10
lea eax, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41424b
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
add ebp, 0x10
mov dword [esp + 0x10], ebp
jmp 0x414262
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x18]
call fcn.004019d0
lea eax, [esp + 0x28]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x414270
sub eax, edx
sar eax, 1
push eax
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x18]
call fcn.004054e0
mov eax, dword [esi + 0x90]
test eax, eax
jl 0x41448d
cmp eax, dword [esi + 0x80]
jge 0x41448d
mov edx, dword [esi + 0x7c]
mov ecx, dword [esp + 0x10]
mov edi, dword [edx + eax*4]
lea ebp, [edx + eax*4]
lea eax, [ecx - 0x10]
sub edi, 0x10
cmp eax, edi
je 0x414309
cmp dword [edi + 0xc], 0
lea ebx, [edi + 0xc]
jl 0x4142fd
mov edx, dword [eax]
cmp edx, dword [edi]
jne 0x4142fd
push eax
call fcn.00405630
mov dword [esp + 0x24], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x4142f1
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [esp + 0x20]
add ecx, 0x10
mov dword [ebp], ecx
jmp 0x414309
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, ebp
call fcn.004019d0
mov edx, dword [esp + 0x1c]
add dword [esi + 0x8c], edx
mov eax, dword [esi + 0x8c]
cmp eax, dword [esi + 0x94]
jl 0x414365
mov ecx, dword [esi + 0x98]
mov eax, dword [esi + 0x90]
dec ecx
cmp eax, ecx
mov dword [esi + 0x8c], 0
jge 0x414345
inc eax
mov dword [esi + 0x90], eax
jmp 0x414351
push 1
push 0
lea ecx, [esi + 0x78]
call fcn.00421a5f
mov eax, dword [esi + 0x80]
lea ecx, [esi + 0x78]
push 0x56e530
push eax
call fcn.00421c75
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
test ebp, ebp
ja 0x414057
push 0
push 0x56e530
lea ecx, [esp + 0x18]
call fcn.004019d0
xor edi, edi
cmp dword [esi + 0x90], edi
jl 0x4143db
nop
test edi, edi
jl 0x41448d
cmp edi, dword [esi + 0x80]
jge 0x41448d
mov edx, dword [esi + 0x7c]
lea eax, [edx + edi*4]
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x18]
call fcn.004054e0
cmp edi, dword [esi + 0x90]
jge 0x4143d2
push 2
push 0x572498
lea ecx, [esp + 0x18]
call fcn.004054e0
inc edi
cmp edi, dword [esi + 0x90]
jle 0x414390
mov eax, dword [esi + 0x20]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0xb
push eax
call edi
mov ecx, dword [esp + 0x10]
push ecx
mov ecx, esi
call fcn.00419836
mov eax, dword [esi + 0x90]
mov edx, dword [esi + 0x20]
push eax
push 0
push 0xb6
push edx
call edi
mov eax, dword [esi + 0x20]
push 0
push 1
push 0xb
push eax
call edi
mov ecx, dword [esi + 0x20]
push 1
push 0
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edx, dword [esi + 0x20]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
mov eax, dword [esp + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor edi, edi
mov dword [esp + 0x3c], 0xffffffff
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x414466
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, edi
mov ecx, dword [esp + 0x34]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.00515ce5
add esp, 0x30
ret 4
call fcn.004018b0
call fcn.004184c6
int3