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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x100606c8
push eax
mov dword fs:[0], esp
sub esp, 0x140
cmp byte [ebp + 0x28], 0
push ebx
push esi
push edi
je 0x1000324a
push 2
lea ecx, [esp + 0x78]
call fcn.1000199f
push ecx
xor ebx, ebx
lea edx, [esp + 0x40]
lea ecx, [esp + 0x78]
mov dword [esp + 0x158], ebx
call fcn.10003312
pop ecx
mov dword [esp + 0x28], 0x122b
cmp dword [esp + 0x28], 0x15e8
push 1
pop esi
jle 0x10002a8f
mov edi, ebx
mov ecx, ebx
mov dword [esp + 0x20], ebx
mov eax, ebx
mov dword [esp + 0x14], ebx
and eax, ecx
lea ecx, [esp + 0x130]
and eax, edi
cdq
push edx
push eax
call fcn.100025b7
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10002a48
mov eax, dword [eax]
push eax
call fcn.1004b05d
pop ecx
push ebx
push esi
lea ecx, [esp + 0x138]
call fcn.10007cc3
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
inc eax
mov dword [esp + 0x14], eax
cmp eax, 0x103
jl 0x10002a2b
inc ecx
mov dword [esp + 0x20], ecx
cmp ecx, 0x6a75
jl 0x10002a25
inc edi
cmp edi, 0x6619
jl 0x10002a1f
push ebx
push ebx
call dword [sym.imp.GDI32.dll_RectInRegion]
cmp dword [esp + 0x28], 0x1042
jge 0x10002aa4
push str.riqvzw_uuhgke_yuzirg_mbqxn_gtoedcs_bhilb_mshygpzxu_ztxkucv_wwmey_sxpya_zoug_uxhgm
call fcn.1004b05d
pop ecx
mov dword [esp + 0x154], ebx
mov dword [esp + 0x3c], ebx
jmp 0x10002ac0
mov eax, dword [esp + 0x3c]
mov dword [esp + eax*4 + 0xe4], ebx
inc dword [esp + 0x3c]
cmp dword [esp + 0x3c], 4
jl 0x10002ab1
mov dword [esp + 0xec], 1
push 0xfffffffffffffffc
pop esi
cmp dword [esp + 0xec], ebx
jl 0x10002b8a
mov dword [esp + 0x10], esi
mov dword [esp + 0x10], ebx
jmp 0x10002b4a
mov dword [esp + 0x38], 1
mov dword [esp + 0x38], ebx
jmp 0x10002b20
lea eax, [esp + 0x38]
mov edx, 0x22b7
push eax
lea eax, [esp + 0x78]
mov ecx, 0x7e58
push eax
push ebx
push 0x5426
call fcn.100054c1
add esp, 0x10
inc dword [esp + 0x38]
cmp dword [esp + 0x38], 2
jl 0x10002afa
push 1
push 0x6fee
push 0x766
push ecx
mov edx, 0x3da6
mov ecx, 0x259e
call fcn.100027aa
add esp, 0x10
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jle 0x10002aec
mov byte [esp + 0x1f], bl
cmp byte [esp + 0x1f], bl
je 0x10002b7d
push 0x7976
push 0x2823
push ebx
push 0x21bd
push ebx
push 0x20
mov edx, 0xe25
mov cl, 1
call fcn.100044d9
add esp, 0x18
dec dword [esp + 0xec]
jns 0x10002ae2
cmp dword [esp + 0x74], ebx
je 0x10002ba6
push dword [esp + 0x74]
call fcn.10048a74
pop ecx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
mov edi, dword [ebp + 0x20]
mov edx, 0x3f62
push ebx
push 0x7ea6
push 0x6abc
push 0x3b48
push 0x1daf
push 0x626
push 0x1d5e
mov dword [esp + 0x170], 3
mov ecx, 0x5477
mov eax, dword [edi + 0x10]
push 0x91c
push ebx
mov dword [esp + 0x48], eax
call fcn.100029b7
mov eax, dword [ebp + 0x24]
add esp, 0x24
mov eax, dword [eax + 0x10]
mov dword [esp + 0x10], esi
mov dword [esp + 0xbc], eax
mov dword [esp + 0x10], ebx
jmp 0x10002c31
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x10c], 0xf0ea
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 2
jl 0x10002c1e
push ecx
push ecx
mov byte [esp + 0x3f], bl
lea ecx, [esp + 0x3f]
call fcn.100044b3
pop ecx
xor esi, esi
mov dword [esp + 0x14], ebx
pop ecx
inc esi
jmp 0x10002c63
mov eax, dword [esp + 0x10]
cmp dword [esp + eax*4 + 0x10c], ebx
jne 0x10002c69
inc dword [esp + 0x10]
cmp dword [esp + 0x10], esi
jle 0x10002c52
mov dword [esp + 0x18], 0x2589
cmp dword [esp + 0x18], 0x125d
jge 0x10002e6a
lea eax, [esp + 0x48]
push eax
push 0x10068bc0
call fcn.1004aadb
pop ecx
pop ecx
mov dword [esp + 0x60], 0xf
mov dword [esp + 0x5c], ebx
mov byte [esp + 0x4c], bl
lea edx, [esp + 0x4c]
mov byte [esp + 0x154], 4
mov ecx, 0x1007c050
call fcn.1000ab6c
or eax, 0xffffffff
push eax
lea eax, [esp + 0x50]
push ebx
push eax
mov ecx, eax
call fcn.10007a6e
push dword [esp + 0x48]
lea eax, [esp + 0xd0]
push ebx
push eax
lea ecx, [esp + 0x58]
call fcn.10007056
push 0xa
mov byte [esp + 0x158], 5
mov eax, dword [esp + 0x4c]
pop edx
mov dword [esp + 0x2c], edx
mov ecx, ebx
cmp dword [esp + 0x5c], ecx
jbe 0x10002d3a
cmp dword [esp + 0x60], 0x10
lea eax, [esp + 0x4c]
cmovae eax, dword [esp + 0x4c]
inc byte [eax + ecx]
lea eax, [esp + 0x4c]
cmp dword [esp + 0x60], 0x10
cmovae eax, dword [esp + 0x4c]
cmp byte [eax + ecx], 0x39
jle 0x10002d2f
cmp dword [esp + 0x60], 0x10
lea eax, [esp + 0x4c]
cmovae eax, dword [esp + 0x4c]
mov byte [eax + ecx], 0x30
inc ecx
cmp ecx, dword [esp + 0x5c]
jb 0x10002cf8
mov eax, dword [esp + 0x48]
mov edi, ebx
test eax, eax
jle 0x10002e28
push eax
push edi
lea eax, [esp + 0xfc]
push eax
lea ecx, [esp + 0x58]
call fcn.10007056
mov byte [esp + 0x154], 6
lea eax, [esp + 0xcc]
cmp dword [esp + 0xe0], 0x10
lea ecx, [esp + 0xf4]
mov edx, dword [esp + 0xdc]
cmovae eax, dword [esp + 0xcc]
cmp dword [esp + 0x108], 0x10
mov dword [esp + 0x18], eax
cmovae ecx, dword [esp + 0xf4]
mov eax, dword [esp + 0x104]
cmp eax, edx
mov dword [esp + 0x44], ecx
mov ecx, edx
cmovb ecx, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x30], eax
test ecx, ecx
jne 0x10002dba
mov eax, ebx
jmp 0x10002dcf
push ecx
push dword [esp + 0x1c]
push dword [esp + 0x4c]
call fcn.10049294
mov edx, dword [esp + 0x2c]
add esp, 0xc
xor ecx, ecx
cmp dword [esp + 0x30], edx
push 0xffffffffffffffff
setne cl
cmp dword [esp + 0x34], edx
pop edx
cmovb ecx, edx
test eax, eax
cmovne ecx, eax
test ecx, ecx
jns 0x10002e01
push edx
push ebx
lea eax, [esp + 0xfc]
push eax
lea ecx, [esp + 0xd8]
call fcn.10007bb6
push ebx
push esi
lea ecx, [esp + 0xfc]
mov byte [esp + 0x15c], 5
call fcn.10007cc3
mov eax, dword [esp + 0x48]
inc edi
cmp edi, eax
jl 0x10002d44
mov edx, dword [esp + 0x2c]
dec edx
mov dword [esp + 0x2c], edx
jne 0x10002cf0
lea edx, [esp + 0xcc]
call fcn.1000a250
push eax
call fcn.1000a400
pop ecx
push ebx
push esi
lea ecx, [esp + 0xd4]
call fcn.10007cc3
push ebx
push esi
lea ecx, [esp + 0x54]
mov byte [esp + 0x15c], 3
call fcn.10007cc3
mov edi, dword [ebp + 0x20]
cmp dword [edi + 0x14], 8
jb 0x10002e74
mov eax, dword [edi]
jmp 0x10002e76
mov eax, edi
push dword [edi + 0x10]
mov ecx, dword [ebp + 0x24]
push ebx
push eax
call fcn.10008075
mov esi, ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], esi
mov eax, 0xa4ee
cmp esi, dword [esp + 0xbc]
jae 0x10003208
xor ecx, ecx
inc ecx
or esi, 0xffffffff
mov dword [esp + 0x68], ecx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x18], 0x3638ecf5
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 8
mov dword [esp + 0x44], ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x18], esi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x18], 0x477a
mov dword [esp + 0x9c], 0x5618d7c5
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x10], ebx
jmp 0x10002f19
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x124], 9
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 3
jl 0x10002f06
push 0x5af2
lea eax, [esp + 0xa0]
push 0x588c
push eax
call fcn.100026a3
add esp, 0xc
mov dword [esp + 0x14], ebx
jmp 0x10003008
mov dword [esp + 0x20], 0x630de2fd
mov dword [esp + 0x10], ebx
jmp 0x10002f61
mov eax, dword [esp + 0x10]
mov dword [esp + eax*4 + 0x64], 0x46406ccc
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 1
jl 0x10002f51
mov dword [esp + 0x28], 6
jmp 0x10002ff9
mov dword [esp + 0x18], esi
mov dword [esp + 0x10], 0xf4914d86
cmp dword [esp + 0x44], ebx
jne 0x10003004
mov edx, dword [esp + 0x124]
mov eax, ebx
imul eax, eax, 0x6b35
neg eax
sbb eax, eax
neg eax
cmp eax, 0xc76bf08e
sbb eax, eax
xor ecx, ecx
neg eax
sub edx, eax
mov eax, dword [esp + 0x68]
cmp edx, eax
setl cl
xor eax, eax
cmp ecx, 0xfffffffe
setge al
xor ecx, ecx
cmp eax, 0xde68
setne cl
sub ecx, dword [esp + 0x10]
jne 0x10002fce
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
xor edx, edx
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x20]
cmp eax, ecx
setne dl
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], eax
dec dword [esp + 0x28]
cmp dword [esp + 0x28], 0xfffffff7
jge 0x10002f75
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 0x11
je 0x10002f43
mov eax, dword [esp + 0x2c]
cmp eax, esi
je 0x1000307e
cmp eax, dword [esp + 0x30]
je 0x10003042
push ebx
lea eax, [esp + 0x94]
push eax
push dword [ebp + 0x24]
lea edx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x3c]
call fcn.100027aa
mov eax, dword [esp + 0x3c]
add esp, 0x10
mov esi, dword [esp + 0x24]
add esi, eax
cmp dword [edi + 0x14], 8
mov dword [esp + 0x30], esi
jb 0x10003056
mov eax, dword [edi]
jmp 0x10003058
mov eax, edi
push dword [edi + 0x10]
mov ecx, dword [ebp + 0x24]
push esi
push eax
call fcn.10008075
mov dword [esp + 0x2c], eax
or eax, 0xffffffff
cmp esi, eax
mov eax, 0xa4ee
jne 0x10002e92
jmp 0x10003208
mov edx, dword [ebp + 0x24]
lea eax, [esp + 0x30]
push eax
push 0x651b
push ebx
push 0x32ed
push ebx
xor esi, esi
lea ecx, [esp + 0xa4]
push 0x2d85
inc esi
push esi
push 0x7ddd
call fcn.10003abb
or eax, 0xffffffff
mov dword [esp + 0x40], 0x9a97
mov dword [esp + 0xa0], eax
lea ecx, [esp + 0xd0]
add esp, 0x20
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x14], 0x9adb8213
push 2
call fcn.1000199f
mov byte [esp + 0x154], 7
mov dword [esp + 0x40], ebx
jmp 0x10003106
mov eax, dword [esp + 0x40]
mov dword [esp + eax*4 + 0x6c], esi
inc dword [esp + 0x40]
cmp dword [esp + 0x40], 2
jl 0x100030fa
push 0x62a1
lea eax, [esp + 0x44]
mov edx, 0x38a7
push eax
push 1
push 0x5378
lea eax, [esp + 0xc0]
mov cl, 1
push ebx
push eax
call fcn.100044d9
mov ecx, dword [esp + 0x84]
xor edx, edx
mov eax, dword [esp + 0xa4]
add esp, 0x18
cmp ecx, eax
setg dl
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x8c]
sub ecx, eax
mov eax, dword [esp + 0x8c]
imul edx, ecx
xor ecx, ecx
cmp edx, eax
setl cl
xor edx, edx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x6c]
sub ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x8c]
cmp ecx, eax
mov eax, dword [esp + 0x20]
setl dl
xor ecx, ecx
cmp eax, edx
mov eax, dword [esp + 0x20]
setge cl
xor edx, edx
cmp ecx, eax
setle dl
xor ecx, ecx
add edx, dword [esp + 0x20]
mov eax, dword [esp + 0x6c]
cmp eax, edx
mov eax, dword [esp + 0x6c]
setle cl
mov dword [esp + 0x24], ecx
xor ecx, ecx
cmp eax, dword [esp + 0x24]
mov eax, dword [esp + 0x84]
setle cl
add eax, ecx
jne 0x100031d0
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0x84]
mov eax, dword [esp + 0xb0]
push eax
mov byte [esp + 0x158], 3
mov dword [eax], 0xa98ceef9
call fcn.10048a74
pop ecx
mov dword [esp + 0xb0], ebx
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], ebx
mov dword [esp + 0x24], 0x2799ac78
push ecx
call fcn.100064ee
mov byte [esp + 0x23], bl
cmp byte [esp + 0x23], 0
pop ecx
je 0x10003229
push ecx
call fcn.10005db5
pop ecx
mov ecx, dword [ebp + 0x1c]
lea eax, [esp + 0x90]
push eax
call fcn.1000755b
lea ecx, [esp + 0x90]
call fcn.1000824a
jmp 0x100032fd
push dword [esp + 0x24]
movdqa xmm0, xmmword [0x1006e720]
lea eax, [esp + 0x128]
push eax
xor ebx, ebx
lea eax, [esp + 0x11c]
push eax
push ebx
lea ecx, [esp + 0xd0]
mov dword [esp + 0xd0], ebx
movdqu xmmword [esp + 0x124], xmm0
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], ebx
call fcn.10001ac3
mov dword [esp + 0x14], 0xd4081c29
xor eax, eax
mov dword [esp + 0x24], 0x562b994b
inc eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x14], 3
jg 0x100032e7
push 7
pop eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
inc dword [esp + 0x18]
inc dword [esp + 0x14]
cmp dword [esp + 0x14], 3
jle 0x100032bc
cmp dword [esp + 0xc0], ebx
je 0x100032fd
push dword [esp + 0xc0]
call fcn.10048a74
pop ecx
mov ecx, dword [esp + 0x14c]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret