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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10065fa8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x120
push ebx
push esi
push edi
push 3
pop edi
mov esi, ecx
mov dword [esp + 0x40], edx
push edi
lea ecx, [esp + 0x64]
call fcn.10028987
xor eax, eax
lea ecx, [esp + 0x8c]
inc eax
xor ebx, ebx
mov dword [esp + 0x134], ebx
mov dword [esp + 0x6c], 0xb02971c
push eax
call fcn.10028987
xor eax, eax
lea edx, [esp + 0x60]
inc eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x134], al
mov dword [esp + 0xe4], ebx
call fcn.1003187f
xor edx, edx
mov dword [esp + 0x34], ebx
inc edx
jmp 0x10031b9c
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x8c]
mov dword [eax + ecx*4], edi
inc dword [esp + 0x34]
cmp dword [esp + 0x34], edx
jl 0x10031b8a
lea edx, [esp + 0x60]
lea ecx, [esp + 0x6c]
call fcn.10031978
lea eax, [esp + 0x60]
mov edx, ecx
push eax
lea eax, [esp + 0x90]
push eax
lea ecx, [esp + 0xec]
call fcn.10031997
cmp dword [esp + 0x94], 0
pop ecx
pop ecx
je 0x10031bf8
push dword [esp + 0x8c]
call fcn.1004e319
pop ecx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
or dword [esp + 0x134], 0xffffffff
cmp dword [esp + 0x60], 0
je 0x10031c1d
push dword [esp + 0x60]
call fcn.1004e319
pop ecx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
cmp dword [esi + 0x10], ebx
jne 0x10031c29
xor al, al
jmp 0x10032675
mov dword [esp + 0x70], ebx
xor ecx, ecx
mov dword [esp + 0x74], ebx
inc ecx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x28], 0xe13a6c9c
mov dword [esp + 0x20], 0xfffffff8
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x14], 0xbcb1a7a8
mov dword [esp + 0x24], 0xc3fa
mov dword [esp + 0x1c], ecx
inc dword [esp + 0x70]
je 0x10031ca9
mov eax, dword [esp + 0x28]
cmp ecx, eax
sbb eax, eax
inc eax
cmp eax, dword [esp + 0x28]
jl 0x10031c85
mov eax, ecx
cmp dword [esp + 0x28], ebx
jne 0x10031c87
mov eax, ebx
cmp eax, edi
sbb eax, eax
xor ecx, ecx
inc eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
cmp eax, 0x5018
setg cl
shl ecx, 3
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
xor edx, edx
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x70]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x24]
inc ecx
cmp ecx, eax
mov eax, dword [esp + 0x70]
sete dl
xor ecx, ecx
cmp edx, eax
mov eax, 0xffff
setle cl
cmp ecx, eax
jne 0x10031cfe
cmp dword [esp + 0x20], ebx
je 0x10031cfe
xor eax, eax
lea ecx, [eax + 1]
jmp 0x10031d00
mov ecx, ebx
mov eax, dword [esp + 0x20]
imul eax, ecx
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
sub ecx, dword [esp + 0x70]
neg ecx
sbb ecx, ecx
xor eax, eax
inc ecx
cmp ecx, 0x219f
setl al
xor edx, edx
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
cmp ecx, eax
setg dl
cmp edx, dword [esp + 0x78]
je 0x10031d49
cmp dword [esp + 0x28], ebx
jne 0x10031d49
xor ecx, ecx
mov eax, ebx
inc ecx
jmp 0x10031d4e
xor ecx, ecx
inc ecx
mov eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x10], 0x36f914a1
mov dword [eax], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x1c], 0xa964a90c
mov dword [esp + 0x10], ebx
jmp 0x10031d82
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x2c], 0xfffffff7
inc dword [esp + 0x10]
cmp dword [esp + 0x10], ecx
jl 0x10031d72
mov dword [esp + 0x2c], 5
cmp dword [esp + 0x2c], 0xfffffff2
push 2
pop edi
jle 0x10031e74
jmp 0x10031da3
xor ecx, ecx
inc ecx
mov dword [esp + 0xec], ecx
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xf4], ecx
mov dword [esp + 0xf8], ecx
mov dword [esp + 0x10], ebx
jmp 0x10031dd8
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x118], 0x364d64ea
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 4
jl 0x10031dc5
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], ebx
je 0x10031df5
mov edx, ecx
cmp dword [esp + 0x2c], ebx
jne 0x10031df7
mov edx, ebx
mov eax, dword [esp + 0xec]
xor ecx, ecx
mov eax, dword [esp + 0x2c]
add eax, edi
cmp eax, 0x7008b15e
setg cl
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x1c], ebx
je 0x10031e28
cmp dword [esp + 0xf0], ebx
je 0x10031e28
xor eax, eax
inc eax
mov ecx, eax
jmp 0x10031e2d
xor eax, eax
mov ecx, ebx
inc eax
sub eax, ecx
dec eax
neg eax
sbb eax, eax
xor ecx, ecx
neg eax
imul eax, dword [esp + 0xf4]
cmp edx, eax
mov eax, dword [esp + 0x2c]
sete cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0xec]
setne dl
xor ecx, ecx
cmp edx, eax
setne cl
mov dword [esp + 0x11c], ecx
dec dword [esp + 0x2c]
cmp dword [esp + 0x2c], 0xfffffff2
jg 0x10031da0
cmp dword [esi + 0x14], 0x10
jb 0x10031e7e
mov ecx, dword [esi]
jmp 0x10031e80
mov ecx, esi
cmp dword [esi + 0x14], 0x10
mov dword [esp + 0x3c], ecx
jb 0x10031e8e
mov edx, dword [esi]
jmp 0x10031e90
mov edx, esi
mov eax, dword [esi + 0x10]
add eax, edx
cmp ecx, eax
je 0x10032672
mov dword [esp + 0x14], 0x5c96dd1e
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], 0xa36a77d7
mov dword [esp + 0x28], 0xfffc
cmp dword [esp + 0x14], ebx
je 0x10031fb0
push edi
lea ecx, [esp + 0x84]
call fcn.10028987
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0x10], ebx
jmp 0x10031ef1
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x80]
or dword [eax + ecx*4], 0xffffffff
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x10031ede
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x10031f07
call fcn.100319d7
mov dword [esp + 0x14], 0x17
cmp dword [esp + 0x14], 0x10
jge 0x10031f82
mov edi, dword [esp + 0x80]
mov dword [esp + 0x10], 0xfffffffd
cmp dword [edi + 4], ebx
je 0x10031f3c
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x10031f44
call fcn.100319f1
jmp 0x10031f44
mov dword [esp + 0x24], 0xbef7d651
mov dword [esp + 0x1c], ebx
xor ecx, ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
cmp eax, 0x4938
mov eax, dword [esp + 0x14]
setg cl
imul ecx, eax
mov dword [edi + 4], ecx
mov dword [esp + 0x1c], ecx
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0x10
jl 0x10031f1d
push 2
pop edi
cmp dword [esp + 0x80], 0
je 0x10031fc0
push dword [esp + 0x80]
call fcn.1004e319
pop ecx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
jmp 0x10031fc0
mov dword [esp + 0x1c], 0xe520c3d8
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
mov al, byte [eax]
cmp al, 0x30
jl 0x1003223f
cmp al, 0x39
jg 0x1003223f
mov dword [esp + 0x1c], 0x1e51
cmp dword [esp + 0x1c], 0xa5d
jge 0x1003209a
call fcn.1004d765
push eax
push 0x10007be0
push 0x10007be4
call fcn.1004e3f1
add esp, 0xc
call fcn.1004d765
add eax, 0x20
push eax
push 0x10007bec
push 0x10007bf0
call fcn.1004e3f1
add esp, 0xc
mov ecx, 0x10657790
push 0x11196164
call fcn.10027fdd
push 0x11196164
jmp 0x10032082
mov edx, dword [0x11196164]
mov ecx, ebx
test dl, 1
jmp 0x1003204a
xor eax, eax
inc ecx
inc eax
shl eax, cl
test edx, eax
mov dword [0x112599f8], ecx
je 0x10032042
push ecx
push ecx
sar edx, cl
mov ecx, 0x106576d8
push edx
call fcn.1002852f
mov edx, 0x10007b90
mov ecx, eax
call fcn.1002c79f
pop ecx
mov ecx, eax
call fcn.1002852f
push eax
call fcn.1002c976
mov dword [esp], 0x11196164
mov ecx, 0x10657790
call fcn.10027fdd
mov ecx, eax
mov eax, dword [ecx]
mov eax, dword [eax + 4]
test byte [eax + ecx + 0xc], 6
je 0x10032035
mov dword [esp + 0x14], 5
mov dword [esp + 0x1c], 0x813f1a07
mov dword [esp + 0x20], 0x2a3cc92e
mov dword [esp + 0xc0], 0xfff9
mov dword [esp + 0x38], 0xfffffffc
mov dword [esp + 0x10], ebx
jmp 0x100320de
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x100], 0xc017f215
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x100320cb
mov dword [esp + 0x14], 0xffffffed
cmp dword [esp + 0x14], 0xfffffff7
je 0x1003221d
mov edi, 0xffff
mov dword [esp + 0x10], 0x161ab6ec
mov dword [esp + 0x24], 0x91e66c61
mov dword [esp + 0x28], 0x5e2de4bf
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], 0xfffa
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
imul eax, dword [esp + 0x24]
inc eax
add eax, dword [esp + 0x1c]
neg eax
sbb eax, eax
xor ecx, ecx
add eax, 2
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0xc0]
mov eax, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x38]
cmp eax, 0x4d33
mov eax, dword [esp + 0x10]
setg cl
xor edx, edx
cmp ecx, 0xf314
setle dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x108]
setge cl
xor edx, edx
cmp ecx, eax
mov eax, dword [esp + 0x108]
setge dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [esp + 0x28]
setl bl
xor ecx, ecx
cmp ebx, eax
setne cl
xor eax, eax
cmp ecx, 0xfffffffa
mov ecx, 0xac411777
setne al
imul eax, dword [esp + 0x20]
cmp edi, eax
sbb eax, eax
add eax, 0x2ed5bb0d
cmp ecx, eax
sbb edx, edx
neg edx
sub edx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
add edx, 0x9255c21f
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setge cl
mov dword [esp + 0x108], ecx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0xfffffff7
jne 0x100320fd
push 2
xor ebx, ebx
pop edi
push ebx
push 0x2385
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x4c]
push eax
call fcn.10034ed7
mov ecx, dword [esp + 0x4c]
add esp, 0x10
inc ecx
jmp 0x10031e80
mov dword [esp + 0x14], 0xfffffffd
mov dword [esp + 0x14], ebx
jmp 0x10032260
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x10c], 0x20624039
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jl 0x1003224d
xor ecx, ecx
mov dword [esp + 0x14], ebx
inc ecx
jmp 0x10032280
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x30], 0xffffffff
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ecx
jl 0x10032270
mov dword [esp + 0x14], ebx
jmp 0x1003239b
mov dword [esp + 0x20], 0x76ff55e0
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x100322a9
push ebx
call dword [sym.imp.USER32.dll_IsRectEmpty]
mov dword [esp + 0x20], edi
cmp dword [esp + 0x20], ebx
jl 0x10032397
mov dword [esp + 0x10], ebx
jmp 0x100322c9
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x50], ebx
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edi
jl 0x100322bd
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x100322e6
push 0xb9e
push ebx
call dword [sym.imp.KERNEL32.dll_WaitNamedPipeA]
mov dword [esp + 0x54], ebx
jmp 0x10032383
xor eax, eax
lea ecx, [esp + 0x44]
inc eax
push eax
call fcn.10028987
xor edx, edx
mov dword [esp + 0x10], ebx
inc edx
jmp 0x10032318
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x44]
mov dword [eax + ecx*4], 0x3aeb5900
inc dword [esp + 0x10]
cmp dword [esp + 0x10], edx
jl 0x10032305
mov eax, dword [esp + 0x44]
xor ecx, ecx
mov dword [eax], 8
mov eax, dword [esp + 0x54]
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x44]
cmp dword [eax], ebx
mov eax, dword [esp + 0x114]
setne cl
xor edx, edx
sub ecx, eax
mov eax, dword [esp + 0x30]
cmp ecx, eax
mov eax, dword [esp + 0x54]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [esp + 0x20]
setne cl
mov dword [esp + eax*4 + 0x10c], ecx
cmp dword [esp + 0x30], ebx
push dword [esp + 0x44]
call fcn.1004e319
mov dword [esp + 0x50], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], ebx
inc dword [esp + 0x58]
pop ecx
cmp dword [esp + 0x54], edi
jle 0x100322ef
dec dword [esp + 0x20]
jns 0x100322b7
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edi
jle 0x1003228f
mov dword [esp + 0x14], ebx
jmp 0x100323de
mov dword [esp + 0x10], 0x7f5aee0c
mov dword [esp + 0x10], ebx
jmp 0x100323d3
cmp dword [esp + 0x30], ebx
jne 0x100323da
mov byte [esp + 0x1b], bl
cmp byte [esp + 0x1b], 0
je 0x100323cf
call fcn.100319ff
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 0xfffffffb
jne 0x100323b9
dec dword [esp + 0x14]
cmp dword [esp + 0x14], 0xffffffef
jne 0x100323ab
lea eax, [esp + 0x40]
push eax
push ebx
push 0x4018
call fcn.10032835
add esp, 0xc
mov dword [esp + 0xe0], 4
mov dword [esp + 0xd4], 0x256915a1
lea ecx, [esp + 0x98]
mov dword [esp + 0xcc], 0xffffffff
mov dword [esp + 0xfc], 0x7bf5cd53
mov dword [esp + 0xbc], 0xfffffff8
push edi
call fcn.10028987
xor eax, eax
mov dword [esp + 0x134], edi
inc eax
lea ecx, [esp + 0xa4]
push eax
call fcn.10028987
mov dword [esp + 0xc4], 0xde726f2c
lea edx, [esp + 0x98]
mov dword [esp + 0xd8], 0x1140ae77
lea ecx, [esp + 0xd0]
mov dword [esp + 0xdc], 0x9140
call fcn.10031a0a
lea edx, [esp + 0xa4]
call fcn.10031a29
lea ecx, [esp + 0xa4]
call fcn.10031a48
lea eax, [esp + 0xdc]
push eax
lea eax, [esp + 0xdc]
push eax
push ecx
lea eax, [esp + 0xec]
push eax
lea eax, [esp + 0xcc]
push eax
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0xdc]
push eax
lea eax, [esp + 0xe8]
push eax
lea edx, [esp + 0xf4]
lea ecx, [esp + 0x11c]
call fcn.10031a4d
add esp, 0x20
cmp dword [esp + 0xa4], 0
je 0x1003251a
push dword [esp + 0xa4]
call fcn.1004e319
pop ecx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ebx
cmp dword [esp + 0x98], 0
je 0x10032546
push dword [esp + 0x98]
call fcn.1004e319
pop ecx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x10], 0x12
jmp 0x10032592
mov eax, 0xffff
lea edx, [esp + 0xe8]
mov dword [esp + 0xe8], eax
lea ecx, [esp + 0xc8]
mov dword [esp + 0xc8], 5
call fcn.10031b06
mov eax, dword [esp + 0x38]
dec dword [esp + 0x10]
cmp dword [esp + 0x10], 6
jne 0x10032560
mov dword [esp + 0x38], 0x235d
cmp dword [esp + 0x38], 0xa9f
jge 0x10031c22
lea eax, [esp + 0xb0]
push eax
lea eax, [esp + 0x5c]
push eax
push 0x10007fb0
call fcn.1004d62b
mov edi, dword [esp + 0x68]
add esp, 0xc
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x58]
mov esi, ebx
push 0xa
pop eax
push 0
push eax
push edi
push ebx
mov dword [esp + 0x2c], eax
call fcn.10064dc0
add eax, 1
push 0
push 0xa
adc edx, 0
push edx
push eax
call fcn.10064dc0
cmp edx, dword [esp + 0xb4]
jg 0x1003265e
jge 0x10032655
mov edi, dword [esp + 0x5c]
mov esi, ebx
push 0
push 0xa
push dword [esp + 0x38]
sub esi, eax
push dword [esp + 0x28]
sbb edi, edx
call fcn.10051a00
mov ecx, edx
mov dword [esp + 0x1c], eax
push ecx
push eax
push dword [esp + 0x64]
mov dword [esp + 0x3c], ecx
push ebx
call fcn.10064dc0
push dword [esp + 0x30]
add eax, 1
push dword [esp + 0x20]
adc edx, 0
push edx
push eax
call fcn.10064dc0
cmp edx, dword [esp + 0xb4]
jl 0x10032604
jg 0x1003265e
cmp eax, dword [esp + 0xb0]
jbe 0x10032604
push edi
push esi
push 0x10007b18
call fcn.1004dfbc
add esp, 0xc
jmp 0x10031c22
xor eax, eax
inc eax
mov ecx, dword [esp + 0x12c]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret