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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x100744d5
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x130
push ebx
push esi
push edi
mov dword [esp + 0x48], edx
mov edi, ecx
xor ebx, ebx
lea ecx, [esp + 0x10c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0xc0], 0x9ee1c974
push 4
call fcn.1000c0ba
lea edx, [esp + 0x10c]
mov dword [esp + 0x144], ebx
lea ecx, [esp + 0x118]
call fcn.10028d4d
mov dword [esp + 0x3c], 0xfffffffa
jmp 0x10029d78
push 3
lea ecx, [esp + 0xf8]
call fcn.1000c0ba
push 4
lea ecx, [esp + 0xec]
mov byte [esp + 0x148], 1
call fcn.1000c0ba
push 1
lea ecx, [esp + 0xe0]
mov byte [esp + 0x148], 2
call fcn.1000c0ba
lea edx, [esp + 0xf4]
mov byte [esp + 0x144], 3
lea ecx, [esp + 0x7c]
call fcn.100292c2
lea edx, [esp + 0xe8]
lea ecx, [esp + 0x7c]
call fcn.100293ec
lea edx, [esp + 0xdc]
lea ecx, [esp + 0x7c]
call fcn.1002978f
lea eax, [esp + 0x10c]
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0xc8]
push eax
lea eax, [esp + 0x100]
push eax
lea edx, [esp + 0xec]
lea ecx, [esp + 0xf8]
call fcn.1002983b
add esp, 0x10
mov byte [esp + 0x37], bl
lea ecx, [esp + 0x37]
call fcn.100298ea
lea ecx, [esp + 0xdc]
call fcn.1000c116
lea ecx, [esp + 0xe8]
call fcn.1000c116
lea ecx, [esp + 0xf4]
mov byte [esp + 0x144], bl
call fcn.1000c116
inc dword [esp + 0x3c]
cmp dword [esp + 0x3c], 0xc
je 0x10029c97
or dword [esp + 0x144], 0xffffffff
lea ecx, [esp + 0x10c]
call fcn.1000c116
cmp dword [edi + 0x10], ebx
jne 0x10029da3
xor al, al
jmp 0x1002a7d4
mov dword [esp + 0x10], 0x642c
lea ecx, [esp + 0x88]
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], 0xfffffff6
push 3
call fcn.1000c0ba
lea edx, [esp + 0x88]
lea ecx, [esp + 0x120]
call fcn.100298f6
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], eax
cmp dword [esp + 0x10], ebx
je 0x10029e1d
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
sub edx, 0x6fc6
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setg cl
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x88]
mov dword [eax], ecx
mov eax, dword [esp + 0x10]
xor edx, edx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
cmp ecx, eax
mov eax, dword [esp + 0x10]
setg dl
xor ecx, ecx
cmp edx, eax
sete cl
sub ecx, 0x12c0
jne 0x10029e4f
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x10]
imul edx, dword [eax + 4]
mov eax, dword [esp + 0x10]
cmp edx, eax
mov eax, dword [esp + 0x10]
setne cl
xor edx, edx
cmp ecx, 0x7684abf0
setge dl
xor ecx, ecx
cmp edx, eax
setne cl
cmp dword [esp + 0x20], ecx
je 0x10029f20
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], ebx
jmp 0x10029f14
mov dword [esp + 0x18], 8
mov ecx, 0xf89c8945
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x18]
sub ecx, eax
cmp ecx, 0x3a5c25cc
jne 0x10029ec9
cmp dword [esp + 0x14], ebx
je 0x10029ec9
xor eax, eax
inc eax
jmp 0x10029ecb
mov eax, ebx
xor ecx, ecx
test eax, eax
setg cl
xor eax, eax
cmp ecx, 0xfffffffb
setge al
cmp dword [esp + 0x18], eax
jg 0x10029eeb
cmp dword [esp + 0x1c], ebx
je 0x10029eeb
xor eax, eax
inc eax
jmp 0x10029eed
mov eax, ebx
mov ecx, dword [esp + 0x14]
xor edx, edx
imul ecx, eax
mov eax, dword [esp + 0x1c]
cmp ecx, eax
mov eax, dword [esp + 0x18]
setge dl
imul eax, edx
dec eax
neg eax
sbb eax, eax
inc eax
mov dword [esp + 0x20], eax
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x19
jg 0x10029e9f
jmp 0x1002a0d3
mov dword [esp + 0x80], 0x1cf0
mov dword [esp + 0x84], 6
mov dword [esp + 0x10], 0xfffffff7
jmp 0x1002a0a0
mov dword [esp + 0x28], 0x6af4a9b8
mov dword [esp + 0x20], ebx
jmp 0x1002a081
mov dword [esp + 0xa8], 0x4114487f
mov dword [esp + 0x1c], ebx
jmp 0x1002a031
mov dword [esp + 0xb0], 0x15869b92
lea edx, [esp + 0x28]
lea ecx, [esp + 0xb0]
call fcn.10029915
mov dword [esp + 0x30], 0x1db4
cmp dword [esp + 0x30], 0x88a
jge 0x1002a01d
lea eax, [esp + 0x40]
push eax
push 0x1000a7c4
call fcn.100593cb
pop ecx
pop ecx
mov esi, ebx
jmp 0x1002a003
dec eax
mov dword [esp + 0x40], eax
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0xb8]
push eax
push 0x1000ad18
call fcn.100593cb
mov ecx, dword [esp + 0xb8]
add esp, 0x14
sub ecx, dword [esp + 0xac]
mov eax, dword [esp + 0xa0]
inc ecx
sub eax, dword [esp + 0xbc]
inc eax
imul ecx, eax
add esi, ecx
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x10029fae
dec eax
push esi
push 0x1000a6f0
mov dword [esp + 0x48], eax
call fcn.100595c0
pop ecx
pop ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x88]
cmp dword [eax + ecx*4], ebx
jne 0x1002a03c
inc dword [esp + 0x1c]
cmp dword [esp + 0x1c], 2
jle 0x10029f68
mov dword [esp + 0x28], ebx
jmp 0x1002a076
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x34]
push eax
lea edx, [esp + 0x90]
lea ecx, [esp + 0x98]
call fcn.10029948
add esp, 0x10
inc dword [esp + 0x28]
cmp dword [esp + 0x28], 2
jle 0x1002a042
dec dword [esp + 0x20]
cmp dword [esp + 0x20], 0xfffffff5
jle 0x10029f54
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1002a09c
call fcn.100299ee
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0x1c
je 0x10029f43
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x88]
push eax
lea edx, [esp + 0x90]
lea ecx, [esp + 0x94]
call fcn.100299f7
add esp, 0xc
lea ecx, [esp + 0x88]
call fcn.1000c116
push 0x13bc
lea eax, [esp + 0x4c]
push eax
push ebx
call fcn.1002cedd
add esp, 0xc
lea ecx, [esp + 0xc4]
push 1
call fcn.1000c0ba
mov dword [esp + 0x10], 0xffffffff
lea edx, [esp + 0xc4]
mov dword [esp + 0x24], 0x570a50b5
lea ecx, [esp + 0x11c]
call fcn.10029a57
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x10], ebx
jl 0x1002a194
xor ecx, ecx
inc ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x14], ebx
jmp 0x1002a155
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x124], 5
inc dword [esp + 0x14]
cmp dword [esp + 0x14], ecx
jl 0x1002a142
dec dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0xc4]
mov edx, dword [esp + 0x18]
sub edx, dword [eax + ecx*4]
mov eax, dword [esp + 0xc4]
sub edx, 0x489b
neg edx
sbb edx, edx
inc edx
mov dword [eax + esi*4], edx
cmp dword [eax], ebx
jne 0x1002a194
dec dword [esp + 0x10]
jns 0x1002a12d
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0xc4]
mov dword [esp + 0x10], eax
call fcn.1000c116
cmp dword [edi + 0x14], 0x10
jb 0x1002a1b2
mov ecx, dword [edi]
jmp 0x1002a1b4
mov ecx, edi
cmp dword [edi + 0x14], 0x10
mov dword [esp + 0x44], ecx
jb 0x1002a1c2
mov edx, dword [edi]
jmp 0x1002a1c4
mov edx, edi
mov eax, dword [edi + 0x10]
add eax, edx
cmp ecx, eax
je 0x1002a7d2
xor edx, edx
mov dword [esp + 0x14], 0xfffffff6
inc edx
mov dword [esp + 0xb4], edx
mov dword [esp + 0x14], ebx
jmp 0x1002a1fc
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x130], 0x3342eb9
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 2
jl 0x1002a1e9
mov dword [esp + 0x14], ebx
jmp 0x1002a219
lea ecx, [esp + 0xb4]
call fcn.1000c001
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jle 0x1002a209
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1002a232
call fcn.10029a76
xor edx, edx
inc edx
mov eax, dword [esp + 0x44]
mov al, byte [eax]
cmp al, 0x30
jl 0x1002a44c
cmp al, 0x39
jg 0x1002a44c
mov dword [esp + 0x10], 0xfffffff8
lea ecx, [esp + 0x100]
push 2
call fcn.1000c0ba
mov dword [esp + 0x144], 4
mov dword [esp + 0x38], ebx
jmp 0x1002a282
mov eax, dword [esp + 0x38]
mov dword [esp + eax*4 + 0x94], 1
inc dword [esp + 0x38]
cmp dword [esp + 0x38], 3
jl 0x1002a26f
lea edx, [esp + 0x100]
lea ecx, [esp + 0x38]
call fcn.10029a90
mov dword [esp + 0x10], 2
cmp dword [esp + 0x10], ebx
jl 0x1002a3fc
mov dword [esp + 0x14], 0x1dba3399
mov dword [esp + 0x24], 0x885c
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1002a2cb
call fcn.10029aaf
mov dword [esp + 0x14], 2
cmp dword [esp + 0x14], ebx
jl 0x1002a3f2
mov esi, dword [esp + 0x100]
push 2
lea ecx, [esp + 0xd4]
call fcn.1000c0ba
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x18], ebx
jmp 0x1002a316
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xd0]
mov dword [eax + ecx*4], 0x1dbdae4f
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x1002a300
mov eax, dword [esp + 0x10]
cmp dword [esp + eax*4 + 0x94], ebx
je 0x1002a33b
mov eax, dword [esp + 0xd0]
cmp dword [eax + 4], ebx
je 0x1002a33b
xor edx, edx
inc edx
jmp 0x1002a33d
mov edx, ebx
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax*4 + 0x94]
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0xd0]
add ecx, edx
xor edx, edx
mov dword [eax], ecx
mov eax, dword [esp + 0x9c]
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + eax*4 + 0x94]
mov eax, dword [esp + 0x9c]
cmp eax, ecx
mov eax, dword [esp + 0x24]
setge dl
xor ebx, ebx
imul edx, dword [esi + 4]
cmp edx, 0x5ff57440
setle bl
xor ecx, ecx
cmp ebx, eax
mov eax, dword [esp + 0x10]
setge cl
xor edx, edx
add ecx, dword [esi + 4]
cmp ecx, 0x3e58
setne dl
xor ecx, ecx
cmp edx, eax
setne cl
cmp ecx, 1
sbb eax, eax
xor ebx, ebx
neg eax
mov dword [esp + 0x98], eax
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], bl
je 0x1002a3dc
call fcn.10029abf
lea ecx, [esp + 0xd0]
call fcn.1000c116
dec dword [esp + 0x14]
jns 0x1002a2e4
dec dword [esp + 0x10]
jns 0x1002a2ab
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1002a40c
call fcn.10029ad2
or dword [esp + 0x144], 0xffffffff
lea ecx, [esp + 0x100]
call fcn.1000c116
lea eax, [esp + 0x44]
push eax
push 0x1d41
push ebx
push 0x2313
lea eax, [esp + 0x58]
push eax
push 0x53c5
call fcn.1002d1b9
mov ecx, dword [esp + 0x5c]
add esp, 0x18
inc ecx
jmp 0x1002a1b4
mov dword [esp + 0xb8], ebx
mov dword [esp + 0x18], ebx
jmp 0x1002a468
mov eax, dword [esp + 0x18]
mov dword [esp + eax*4 + 0x128], edx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 2
jl 0x1002a459
lea ecx, [esp + 0xb8]
call fcn.10029ae0
mov dword [esp + 0x24], 0x1c3f
cmp dword [esp + 0x24], 0x70a
jge 0x1002a549
push 0x10b8b684
push 0x10b8b680
push 0x1000a888
call fcn.100593cb
mov ecx, dword [0x10b8b680]
xor eax, eax
xor edi, edi
inc eax
inc edi
shl eax, cl
add esp, 0xc
cmp eax, edi
jl 0x1002a4df
mov esi, 0x1068b684
push esi
push 0x1000a6d8
call fcn.100593cb
xor eax, eax
inc edi
pop ecx
pop ecx
mov ecx, dword [0x10b8b680]
inc eax
shl eax, cl
add esi, 4
cmp edi, eax
jle 0x1002a4bf
xor eax, eax
xor edx, edx
push ecx
inc eax
inc edx
shl eax, cl
xor ecx, ecx
push eax
inc ecx
call fcn.10029b27
cmp dword [0x10b8b684], 0
mov esi, ebx
pop ecx
pop ecx
jle 0x1002a549
push 0x1068b67c
push 0x106719dc
push 0x1000a888
call fcn.100593cb
mov ecx, dword [0x10b8b680]
add esp, 0xc
xor eax, eax
xor edx, edx
inc eax
inc edx
shl eax, cl
push ecx
xor ecx, ecx
push eax
inc ecx
call fcn.10029ba1
push dword [0x1078b684]
push 0x1000a7c4
call fcn.100595c0
add esp, 0x10
inc esi
cmp esi, dword [0x10b8b684]
jl 0x1002a4fe
mov byte [esp + 0xf], bl
cmp byte [esp + 0xf], 0
je 0x1002a568
push 0x1c68
push ebx
push ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_RedrawWindow]
lea ecx, [esp + 0x48]
call fcn.10029b04
mov dword [esp + 0x24], 0x13fc
cmp dword [esp + 0x24], 0xdd2
jge 0x1002a78f
call fcn.1005b677
push eax
push 0x1000a91c
push 0x1000ad28
call fcn.1005bc71
add esp, 0xc
call fcn.1005b677
add eax, 0x20
push eax
push 0x1000a928
push 0x1000a92c
call fcn.1005bc71
add esp, 0xc
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x4c], bl
push 0xf
pop eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x144], 5
mov dword [esp + 0x78], eax
mov dword [esp + 0x74], ebx
mov byte [esp + 0x64], bl
mov byte [esp + 0x144], 6
lea edx, [esp + 0x4c]
mov ecx, 0x10665a70
call fcn.10025c54
lea edx, [esp + 0x64]
mov ecx, eax
call fcn.10025c54
mov edx, 0x1000a90c
lea ecx, [esp + 0x4c]
call fcn.100258d7
test al, al
je 0x1002a629
mov edx, 0x1000a90c
lea ecx, [esp + 0x64]
call fcn.100258d7
test al, al
jne 0x1002a777
cmp dword [esp + 0x60], 0x10
lea edi, [esp + 0x4c]
mov esi, dword [esp + 0x5c]
lea edx, [esp + 0x4c]
cmovae edi, dword [esp + 0x4c]
add edi, esi
cmp dword [esp + 0x60], 0x10
cmovae edx, dword [esp + 0x4c]
cmp edx, edi
je 0x1002a665
dec edi
cmp edx, edi
je 0x1002a661
mov cl, byte [edx]
mov al, byte [edi]
mov byte [edx], al
inc edx
mov byte [edi], cl
cmp edx, edi
jne 0x1002a64f
mov esi, dword [esp + 0x5c]
cmp dword [esp + 0x78], 0x10
lea edi, [esp + 0x64]
mov ecx, dword [esp + 0x74]
lea edx, [esp + 0x64]
cmovae edi, dword [esp + 0x64]
add edi, ecx
cmp dword [esp + 0x78], 0x10
cmovae edx, dword [esp + 0x64]
cmp edx, edi
je 0x1002a6a5
dec edi
cmp edx, edi
je 0x1002a69d
mov cl, byte [edx]
mov al, byte [edi]
mov byte [edx], al
inc edx
mov byte [edi], cl
cmp edx, edi
jne 0x1002a68b
mov esi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x74]
mov byte [esp + 0xf], bl
mov edi, ebx
cmp esi, ecx
jae 0x1002a6c8
push 0x30
push 1
lea ecx, [esp + 0x54]
call fcn.10014216
mov esi, dword [esp + 0x5c]
cmp esi, dword [esp + 0x74]
jne 0x1002a6af
jmp 0x1002a6e1
je 0x1002a6e1
push 0x30
push 1
lea ecx, [esp + 0x6c]
call fcn.10014216
mov esi, dword [esp + 0x5c]
cmp esi, dword [esp + 0x74]
jne 0x1002a6ca
test esi, esi
je 0x1002a76b
cmp dword [esp + 0x60], 0x10
lea edx, [esp + 0x4c]
lea eax, [esp + 0x64]
cmovae edx, dword [esp + 0x4c]
cmp dword [esp + 0x78], 0x10
cmovae eax, dword [esp + 0x64]
movsx ecx, byte [eax + ebx]
movsx eax, byte [ebx + edx]
add ecx, eax
movzx eax, byte [esp + 0xf]
add eax, 0xffffffa0
add eax, ecx
cmp eax, 9
jle 0x1002a726
inc edi
mov byte [esp + 0xf], 1
jmp 0x1002a72b
mov byte [esp + 0xf], 0
inc ebx
cmp ebx, esi
jb 0x1002a6e9
test edi, edi
je 0x1002a76b
mov ecx, 0x106659b8
cmp edi, 1
jne 0x1002a74b
push edi
call fcn.100109c9
mov edx, 0x1000ad44
jmp 0x1002a756
push edi
call fcn.100109c9
mov edx, 0x1000ad58
mov ecx, eax
call fcn.10014cea
push eax
call fcn.10014ec1
pop ecx
xor ebx, ebx
jmp 0x1002a5e8
mov edx, 0x1000ad30
mov ecx, 0x106659b8
jmp 0x1002a758
push ebx
push 1
lea ecx, [esp + 0x6c]
call fcn.1000c21a
push ebx
push 1
lea ecx, [esp + 0x54]
call fcn.1000c21a
mov dword [esp + 0x18], 0xea5d6c05
lea ecx, [esp + 0x2f]
mov dword [esp + 0x24], 0x74dd032
mov dword [esp + 0x30], 0xffffffff
mov byte [esp + 0x2f], bl
call fcn.10029b0a
mov dword [esp + 0x18], 0xffffffe8
jmp 0x1002a7c6
inc dword [esp + 0x30]
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 1
jg 0x1002a7be
jmp 0x10029d9c
mov al, 1
mov ecx, dword [esp + 0x13c]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret