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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1005b234
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf0
cmp byte [ebp + 0xc], 0
mov eax, ecx
push ebx
push esi
push edi
mov edi, edx
mov dword [esp + 0x30], eax
je 0x100038da
cmp byte [ebp + 0x24], 0
je 0x10003858
xor ebx, ebx
lea ecx, [esp + 0x9c]
inc ebx
mov dword [esp + 0x50], ebx
push ebx
call fcn.10004886
push 0x11b9
push ebx
and dword [esp + 0x10c], 0
lea eax, [esp + 0xb8]
push 0x2805
push 0x73c9
push 0x5051
push ebx
push eax
push 0x1828
push 0x3d2a
push 0x14b6
push 0x69eb
lea eax, [esp + 0xc8]
mov edx, 0x6a4d
push 0
push eax
mov ecx, 0x4dd
call fcn.100031a3
add esp, 0x34
lea edx, [esp + 0x50]
xor esi, esi
lea ecx, [esp + 0x9c]
push ebx
push 0x386e
push 0x61ce
push 0x6e14
push 0x22bd
push ebx
push 0x34f0
push esi
call fcn.10003d86
push 0x1d4f
push 0xb67
push esi
mov edx, 0x3182
mov ecx, 0x298
call fcn.100040d7
or dword [esp + 0x130], 0xffffffff
lea ecx, [esp + 0xc8]
add esp, 0x2c
call fcn.10004909
mov dword [esp + 0x18], 0x5bf9
cmp dword [esp + 0x18], 0x5fdd
jle 0x10003385
push 0xe95
call dword [sym.imp.USER32.dll_GetQueueStatus]
mov dword [esp + 0x14], esi
mov ecx, esi
mov dword [esp + 0x10], esi
mov edi, esi
mov dword [esp + 0x24], esi
mov eax, edi
mov dword [esp + 0x1c], 0x74f5
mov edi, dword [esp + 0x14]
mov dword [esp + 0x20], eax
and eax, ecx
lea ecx, [esp + 0xc8]
xor eax, edi
cdq
push edx
push eax
call fcn.10001a55
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x1000330c
mov eax, dword [eax]
push eax
call fcn.10042b33
pop ecx
push esi
push ebx
lea ecx, [esp + 0xd0]
call fcn.10004c13
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
dec eax
dec dword [esp + 0x1c]
mov dword [esp + 0x20], eax
jne 0x100032ef
mov edi, dword [esp + 0x24]
inc edi
mov dword [esp + 0x24], edi
cmp edi, 0x343a
jl 0x100032dd
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, 0x3588
jl 0x100032d7
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, 0x7255
jl 0x100032d1
push 0x13b5
push 0x1fb2
push 0x180f
push 0x1f6
push 0x327
call dword [sym.imp.GDI32.dll_IntersectClipRect]
xor eax, eax
mov dword [esp + 0x8c], 7
mov dword [esp + 0x88], esi
mov word [esp + 0x78], ax
cmp dword [esp + 0x18], 0x5880
jge 0x100033b3
push str.wdssra_ygtwndmw_pfedtszm_vllift_bjfx_wvhuweez_fxmohi_iwxqvou_eebflijn_bwxoaogg_riify_ajgoaaty_tum_gxjfygp
call fcn.10042b33
pop ecx
mov dword [esp + 0x104], ebx
lea ecx, [esp + 0x78]
push dword [ebp + 0x2c]
call fcn.10004794
push 3
lea ecx, [esp + 0x94]
call fcn.10004886
push ecx
mov byte [esp + 0x108], 4
lea eax, [esp + 0x94]
push ecx
mov dword [esp + 0x6c], 0xcdf98a59
mov cl, bl
push eax
mov dword [esp + 0x48], 0x1b870004
lea eax, [esp + 0xc0]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x40], ebx
push eax
mov dword [esp + 0x70], 7
call fcn.10003f29
add esp, 0x10
lea eax, [esp + 0x3c]
lea edx, [esp + 0x60]
push eax
lea eax, [esp + 0x44]
push eax
push ecx
lea eax, [esp + 0x70]
push eax
lea eax, [esp + 0x44]
push eax
push ecx
lea eax, [esp + 0xa8]
push eax
call fcn.1000393a
add esp, 0x1c
mov byte [esp + 0x104], bl
lea ecx, [esp + 0x90]
call fcn.10004909
mov eax, dword [0x1065230c]
test bl, al
jne 0x10003485
or eax, ebx
mov dword [0x1065230c], eax
push 0x12fb6
mov byte [esp + 0x108], 5
call fcn.1001d254
pop ecx
mov word [0x106522fc], ax
mov byte [esp + 0x104], bl
push ebx
lea ecx, [esp + 0x48]
call fcn.10004886
push 4
mov byte [esp + 0x108], 6
mov dword [esp + 0x30], esi
pop edi
jmp 0x100034b3
mov eax, dword [esp + 0x2c]
mov dword [esp + eax*4 + 0xb8], 0x13dd
inc dword [esp + 0x2c]
cmp dword [esp + 0x2c], edi
jl 0x100034a0
lea eax, [esp + 0x44]
mov cl, bl
push eax
push ebx
push 0x7d5b
lea edx, [esp + 0x38]
call fcn.1000227b
mov eax, dword [esp + 0x50]
add esp, 0xc
mov dword [eax], esi
jmp 0x100034e9
mov eax, dword [ecx]
inc dword [ecx]
mov dword [esp + eax*4 + 0xb8], 8
mov ecx, dword [esp + 0x44]
cmp dword [ecx], edi
jl 0x100034da
lea ecx, [esp + 0x44]
mov byte [esp + 0x104], bl
call fcn.10004909
mov eax, dword [0x1065230c]
test al, 2
jne 0x10003532
or eax, 2
mov dword [0x1065230c], eax
push 0x11ac6
mov byte [esp + 0x108], 7
call fcn.1001d254
pop ecx
mov word [0x106522ec], ax
mov byte [esp + 0x104], bl
mov edi, dword [ebp + 0x2c]
mov dword [esp + 0x30], edi
test edi, edi
je 0x10003831
push 3
lea ecx, [esp + 0x58]
call fcn.10004886
push 0x4a7c
push 0x7b60
mov byte [esp + 0x10c], 8
lea eax, [esp + 0x5c]
push eax
push ecx
mov dword [esp + 0x20], 0xcdf98a59
lea ecx, [esp + 0xbc]
mov dword [esp + 0x24], 0x1b870004
mov dl, bl
mov dword [esp + 0x2c], esi
push 0x2091
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x2c], 7
push 0x51ef
call fcn.10002c91
mov dword [esp + 0x28], 2
xor eax, eax
add esp, 0x18
cmp dword [esp + 0x10], eax
jl 0x1000368b
mov dword [esp + 0x20], 0xe994
xor edx, edx
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x24], 0x65296947
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x54]
mov eax, dword [eax + ecx*4]
add eax, 0xffff
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x54]
cmp eax, dword [ecx + esi*4]
mov eax, dword [esp + 0x54]
setg dl
xor ebx, ebx
cmp edx, dword [eax + edi*4]
mov eax, dword [esp + 0x10]
setne bl
xor ecx, ecx
cmp ebx, eax
setne cl
xor eax, eax
add ecx, 6
cmp ecx, 0x457
mov ecx, 0xfff8
setl al
imul eax, dword [esp + 0x20]
sub eax, 0x3c3fa3c9
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
sub ecx, eax
jne 0x1000366f
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x6c]
dec dword [esp + 0x10]
push 0
pop eax
jns 0x100035b3
xor ebx, ebx
inc ebx
lea ecx, [esp + 0x54]
mov byte [esp + 0x104], bl
call fcn.10004909
call fcn.10001ad2
push 0x24
xor edx, edx
pop ecx
div ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x14], 4
mov dword [esp + 0x18], 0xfa5c62e0
mov dword [esp + 0x14], 0x49fe
cmp dword [esp + 0x14], 0x4cbe
jle 0x1000376a
xor eax, eax
mov dword [esp + 0x1c], eax
xor edi, edi
mov dword [esp + 0x24], edi
xor ecx, ecx
cdq
idiv edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], 0x4857
xor edi, edi
xor esi, esi
mov eax, ecx
lea ecx, [esp + 0xe0]
or eax, edi
cdq
push edx
push eax
call fcn.10001a55
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10003713
mov eax, dword [eax]
push eax
call fcn.10042b33
pop ecx
push esi
push ebx
lea ecx, [esp + 0xe8]
call fcn.10004c13
mov ecx, dword [esp + 0x20]
inc edi
cmp edi, 0x46ab
jl 0x100036f6
add ecx, dword [esp + 0x10]
dec dword [esp + 0x18]
mov dword [esp + 0x20], ecx
jne 0x100036f2
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
inc edi
mov dword [esp + 0x24], edi
cmp edi, 0x66be
jl 0x100036dd
inc eax
mov dword [esp + 0x1c], eax
cmp eax, 0x433e
jl 0x100036d7
jmp 0x1000376c
xor esi, esi
mov dword [esp + 0x10], esi
jmp 0x10003785
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0xa8], 0xfffffff9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ebx
jl 0x10003772
cmp dword [esp + 0x14], 0x48a1
jge 0x100037a0
push str.bctvel_rsmx_pczy_uef_kwfdwixgf
call fcn.10042b33
pop ecx
mov dword [esp + 0x104], ebx
mov dword [esp + 0x14], 0
cmp dword [esp + 0x14], 0
jl 0x100037ea
lea eax, [esp + 0x2b]
mov byte [esp + 0x2b], 0
push eax
push 0x27a3
push ecx
push 0x5816
push ecx
push ebx
push 0x21b1
mov edx, 0x1141
mov ecx, 0x76f7
call fcn.10002d9d
add esp, 0x1c
dec dword [esp + 0x14]
jns 0x100037b6
push ecx
push 0x1e75
push ecx
push 0x1932
mov dl, bl
call fcn.10002fe0
add esp, 0x10
lea eax, [esp + 0x78]
mov edx, 0xfc
push 0x106522fc
push eax
push ecx
push ecx
push ebx
push 0x106522ec
push ecx
lea ecx, [esp + 0x54]
call fcn.1000304f
add esp, 0x1c
dec dword [esp + 0x30]
push 0
pop esi
jne 0x10003541
mov ecx, dword [ebp + 0x18]
lea eax, [esp + 0x78]
cmp ecx, eax
je 0x10003845
push 0xffffffffffffffff
push esi
push eax
call fcn.10004c57
push esi
push ebx
lea ecx, [esp + 0x80]
call fcn.10004d85
jmp 0x10003925
mov eax, dword [eax]
xor esi, esi
mov eax, dword [ebp + 0x38]
inc esi
mov ebx, dword [ebp + 0x1c]
mov eax, dword [eax]
mov eax, dword [ebp + 0x30]
mov edx, dword [ebx]
mov ecx, dword [eax]
mov eax, dword [edx]
mov dword [ecx], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
mov eax, dword [esp + 0x30]
mov dword [eax], esi
mov eax, dword [ecx]
mov ecx, dword [edi]
mov eax, dword [ebx]
mov eax, dword [eax + ecx*4]
sub eax, 0x2b1d4863
cmp eax, 0x4d91
jge 0x1000389c
mov eax, dword [ebp + 0x38]
cmp dword [eax], 0
je 0x1000389c
mov eax, esi
jmp 0x1000389e
xor eax, eax
mov ecx, dword [ebp + 0x14]
cmp esi, eax
sbb edx, edx
neg edx
mov dword [ecx], eax
mov ecx, dword [edi]
mov eax, dword [ebx]
sub edx, dword [eax + ecx*4]
mov eax, dword [ebp + 0x38]
cmp edx, dword [eax]
jg 0x100038c7
mov ecx, dword [edi]
mov eax, dword [ebx]
cmp dword [eax + ecx*4], 0
je 0x100038c7
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov eax, dword [edi]
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov eax, dword [ebp + 0x28]
mov dword [eax], esi
jmp 0x10003925
cmp byte [ebp + 0x34], 0
je 0x10003906
mov edx, dword [ebp + 0x20]
xor esi, esi
inc esi
mov dword [edx], 0
cmp dword [edx], esi
jge 0x10003925
mov edi, dword [ebp + 8]
mov ecx, dword [edx]
mov eax, dword [edi]
mov dword [eax + ecx*4], 0xfffffffd
inc dword [edx]
cmp dword [edx], esi
jl 0x100038f3
jmp 0x10003925
mov byte [esp + 0x2a], 0
cmp byte [esp + 0x2a], 0
je 0x10003925
push 0x5a4d
push 0
mov ecx, 0x5f9f
call fcn.10001b13
pop ecx
pop ecx
mov ecx, dword [esp + 0xfc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret