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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x100596fe
push eax
mov dword fs:[0], esp
sub esp, 0x88
cmp byte [ebp + 8], 0
push ebx
push esi
push edi
mov edi, edx
mov esi, ecx
je 0x10020fbd
mov edx, dword [ebp + 0xc]
lea ecx, [esp + 0x48]
xor ebx, ebx
mov dword [esp + 0x20], ebx
call fcn.100206f5
mov edx, esi
mov dword [esp + 0x9c], ebx
lea ecx, [esp + 0x3c]
call fcn.100206f5
xor edx, edx
inc edx
mov byte [esp + 0x9c], dl
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x4c]
sub ecx, dword [esp + 0x3c]
sub eax, dword [esp + 0x48]
sar ecx, 2
sar eax, 2
mov dword [esp + 0x18], ebx
cmp eax, ecx
jbe 0x10020ee1
push ebx
push 0x4127
push ecx
lea edx, [esp + 0x24]
lea ecx, [esp + 0x54]
call fcn.10020b63
add esp, 0xc
lea ecx, [esp + 0x3c]
xor eax, eax
lea edx, [esp + 0x1c]
inc eax
push eax
push ebx
push 0x18c0
push 0x3280
push ecx
push 0x5c
push 0x2c06
push 0x4d0c
push 0x797f
push 0x868
push eax
lea eax, [esp + 0x44]
mov ecx, 0x31ca
push eax
push 0x3c9
call fcn.10021adb
add esp, 0x34
jmp 0x10020f38
push 0x30b1
push edx
lea eax, [esp + 0x20]
mov ecx, 0x486b
push eax
push edx
push edx
push 0x4696
lea eax, [esp + 0x54]
mov edx, 0x331
push eax
push 0x3831
call fcn.10020a94
push 0x6851
xor eax, eax
lea edx, [esp + 0x40]
inc eax
xor cl, cl
push eax
push 0x55ae
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x7c]
push 0x289c
push eax
call fcn.10021431
add esp, 0x3c
mov edx, ebx
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x18], edx
jle 0x10020fa4
xor esi, esi
inc esi
test ebx, ebx
jne 0x10020fa4
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + edx*4]
mov eax, dword [esp + 0x3c]
cmp ecx, dword [eax + edx*4]
jle 0x10020f6f
push ecx
lea eax, [esp + 0x24]
mov ecx, 0x610f
push eax
push esi
call fcn.10020ca3
add esp, 0xc
push 0x5df3
push ecx
push esi
lea eax, [esp + 0x48]
push eax
push ecx
lea eax, [esp + 0x34]
push eax
lea edx, [esp + 0x60]
lea ecx, [esp + 0x34]
call fcn.10020d8c
mov edx, dword [esp + 0x34]
add esp, 0x18
mov ebx, dword [esp + 0x20]
inc edx
mov dword [esp + 0x1c], edx
cmp edx, dword [esp + 0x18]
jl 0x10020f47
lea ecx, [esp + 0x3c]
mov dword [edi], ebx
call fcn.10023a4c
lea ecx, [esp + 0x48]
call fcn.10023a4c
jmp 0x10021227
push 2
pop esi
push esi
lea ecx, [esp + 0x64]
call fcn.1000adae
push 3
lea ecx, [esp + 0x58]
mov dword [esp + 0xa0], esi
call fcn.1000adae
mov byte [esp + 0x9c], 3
mov dword [esp + 0x38], 0xab551fa4
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x30], 0x330c
cmp dword [esp + 0x30], 0x3335
push 0
pop ebx
jle 0x100210a5
mov edi, ebx
xor esi, esi
mov dword [esp + 0x2c], edi
inc esi
mov ecx, ebx
mov dword [esp + 0x28], ebx
mov eax, edi
mov edi, ebx
cdq
idiv ecx
mov dword [esp + 0x34], edx
mov ecx, ebx
mov dword [esp + 0x24], ebx
mov eax, edi
cdq
idiv ecx
mov eax, dword [esp + 0x34]
mov ecx, edx
sar eax, cl
lea ecx, [esp + 0x78]
cdq
push edx
push eax
call fcn.10001a55
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x10021050
mov eax, dword [eax]
push eax
call fcn.10040afc
pop ecx
push ebx
push esi
lea ecx, [esp + 0x80]
call fcn.1000b217
mov ecx, dword [esp + 0x24]
inc ecx
mov dword [esp + 0x24], ecx
cmp ecx, 0x2a3e
jl 0x1002102d
inc edi
cmp edi, 0x38a2
jl 0x10021027
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
inc ecx
mov dword [esp + 0x28], ecx
cmp ecx, 0x427c
jl 0x1002101c
inc edi
mov dword [esp + 0x2c], edi
cmp edi, 0x3029
jl 0x10021016
mov dword [esp + 0x2c], 0x40b319b
cmp dword [esp + 0x30], 0x32e4
jge 0x100210c2
push str.acpro_jkwdzlisj_wospn_ibqedazh_yhhqc_mtd
call fcn.10040afc
pop ecx
lea eax, [esp + 0x60]
mov dword [esp + 0x9c], 3
push eax
sub esp, 0xc
mov dword [esp + 0x34], 0xffffffff
lea eax, [esp + 0x24]
mov dword [esp + 0x44], 9
mov dword [esp + 0x40], 0xffff
mov cl, 1
push 0xec9
push 0x6c5
push eax
call fcn.1001f62b
add esp, 0x1c
mov dword [esp + 0x14], ebx
push 3
pop edx
jmp 0x10021122
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x54]
mov dword [eax + ecx*4], 0xfffffff8
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x1002110f
mov dword [esp + 0x14], ebx
jmp 0x1002113a
mov eax, dword [esp + 0x14]
mov dword [esp + eax*4 + 0x6c], edx
inc dword [esp + 0x14]
cmp dword [esp + 0x14], edx
jl 0x1002112e
mov byte [esp + 0x13], bl
cmp byte [esp + 0x13], 0
je 0x10021158
push 1
sub esp, 0x1c
call fcn.1001f69c
add esp, 0x20
mov eax, dword [esp + 0x54]
mov esi, dword [eax]
test esi, esi
jne 0x100211c9
mov eax, dword [esp + 0x38]
xor ecx, ecx
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x54]
mov esi, dword [edi]
cmp esi, dword [eax]
setg cl
xor edx, edx
inc edx
cmp edx, ecx
mov ecx, 0xca8c98aa
sbb eax, eax
inc eax
cmp ecx, eax
sbb eax, eax
inc eax
cmp eax, 0xfffffff9
je 0x10021194
mov ecx, ebx
test esi, esi
je 0x10021196
mov ecx, edx
xor eax, eax
cmp ecx, dword [edi + 4]
setl al
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov eax, dword [esp + 0x54]
mov esi, dword [eax]
cmp esi, 0x9c4b05ef
sbb eax, eax
xor ecx, ecx
neg eax
cmp eax, 0x352601c8
setge cl
cmp ecx, 0xfffffff8
je 0x100211cc
mov edx, ebx
jmp 0x100211cc
xor edx, edx
inc edx
xor ecx, ecx
lea eax, [edx - 1]
cmp eax, esi
setle cl
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x2c], ebx
jne 0x100211e4
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
xor edx, edx
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x60]
mov ecx, dword [eax]
mov eax, dword [esp + 0x54]
cmp ecx, dword [eax + 8]
setl dl
cmp edx, dword [esp + 0x34]
je 0x1002120f
cmp dword [esp + 0x74], ebx
je 0x1002120f
xor eax, eax
inc eax
jmp 0x10021211
mov eax, ebx
lea ecx, [esp + 0x54]
mov dword [esp + 0x74], eax
call fcn.1000ae31
lea ecx, [esp + 0x60]
call fcn.1000ae31
mov ecx, dword [esp + 0x94]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret