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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x100b56a7
mov eax, dword fs:[0]
push eax
sub esp, 0xd8
push ebx
push esi
push edi
mov eax, dword [section..data]
xor eax, esp
push eax
lea eax, [esp + 0xe8]
mov dword fs:[0], eax
mov dword [esp + 0x48], edx
mov esi, ecx
mov dword [esp + 0x30], esi
mov eax, dword [ebp + 0x14]
mov byte [esp + 0x1a], 0
mov byte [esp + 0x16], 0
mov byte [esp + 0x17], 0
mov dword [eax], 0
mov eax, dword [ebp + 0x18]
mov byte [esp + 0x19], 0
mov byte [esp + 0x1b], 0
mov byte [esp + 0x1d], 0
mov dword [esp + 0x34], 1
mov dword [eax], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
call fcn.1009bea0
mov dword [esp + 0x4c], eax
mov dword [esp + 0xf0], 4
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
call fcn.1009bea0
mov dword [esp + 0x54], eax
mov byte [esp + 0xf0], 9
lea ecx, [esp + 0x84]
mov ebx, dword [ebp + 8]
push ebx
push dword [ebp + 0x10]
push esi
call fcn.1001d150
mov edi, ebx
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x24], edi
cmp edi, ebx
jae 0x100222d6
mov edi, edi
lea eax, [edi + 8]
cmp eax, dword [ebp + 0x10]
jae 0x10022250
cmp dword [esp + 0x34], 0x32
jge 0x10022250
cmp byte [esp + 0x1a], 0
je 0x10021c0a
mov al, byte [esp + 0x16]
test al, al
je 0x10021c0a
mov cl, byte [esp + 0x17]
test cl, cl
je 0x10021c0a
mov dl, byte [esp + 0x19]
test dl, dl
je 0x10021c0a
mov ah, byte [esp + 0x1b]
test ah, ah
je 0x10021c0a
mov ch, byte [esp + 0x1d]
test ch, ch
jne 0x10022264
mov al, byte [edi + esi]
lea ecx, [edi + 1]
xor ah, ah
mov byte [esp + 0x1f], 0
mov byte [esp + 0x1e], 0
mov byte [esp + 0x1c], 0
mov byte [esp + 0x18], 0
mov byte [esp + 0x20], 0
mov dword [esp + 0x28], ecx
cmp ecx, ebx
jae 0x10021c3b
mov cl, byte [edi + esi + 1]
mov byte [esp + 0x1f], cl
lea ecx, [edi + 2]
cmp ecx, ebx
jae 0x10021c4a
mov dl, byte [edi + esi + 2]
mov byte [esp + 0x1e], dl
lea edx, [edi + 3]
cmp edx, ebx
jae 0x10021c5c
mov cl, byte [edi + esi + 3]
mov byte [esp + 0x1c], cl
lea ecx, [edi + 2]
lea esi, [edi + 4]
mov dword [esp + 0x2c], esi
cmp esi, ebx
jae 0x10021c76
mov ecx, dword [esp + 0x30]
mov cl, byte [edi + ecx + 4]
mov byte [esp + 0x18], cl
lea ecx, [edi + 2]
lea esi, [edi + 5]
cmp esi, ebx
jae 0x10021c8c
mov edx, dword [esp + 0x30]
mov dl, byte [edi + edx + 5]
mov byte [esp + 0x20], dl
lea edx, [edi + 3]
lea esi, [edi + 6]
cmp esi, ebx
jae 0x10021c9e
mov edx, dword [esp + 0x30]
mov ah, byte [edi + edx + 6]
lea edx, [edi + 3]
cmp ecx, ebx
mov cl, byte [esp + 0x1f]
jae 0x10021cd5
cmp al, 0xff
jne 0x10021cd5
cmp cl, al
jne 0x10021cd5
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x28]
add eax, 2
cmp eax, dword [esp + 0x88]
ja 0x10022046
mov dword [esp + 0x8c], eax
jmp 0x10022046
cmp dword [esp + 0x2c], ebx
jae 0x10021dc5
cmp al, 0xe8
jne 0x10021dc5
cmp byte [esp + 0x1c], 0
jne 0x10021dc5
cmp byte [esp + 0x18], 0
jne 0x10021dc5
mov ecx, dword [ebp + 0x14]
mov byte [esp + 0x1a], 1
cmp dword [ecx], 0
jne 0x10021d14
mov eax, edi
sub eax, dword [ebp + 8]
add eax, 5
mov dword [ecx], eax
movzx ecx, byte [esp + 0x1e]
mov al, byte [esp + 0x1f]
shl cx, 8
movzx eax, al
or cx, ax
mov dword [esp + 0x5c], 0
movzx esi, cx
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov byte [esp + 0xf0], 0xa
lea eax, [esp + 0x5c]
push eax
mov eax, dword [esp + 0x4c]
lea edx, [edi + 5]
push edx
mov ecx, dword [eax + 0x14]
call fcn.100979a0
cmp byte [esp + 0x1e], 0
jne 0x10021d91
add edi, 4
lea ecx, [esp + 0x84]
add edi, esi
lea eax, [edi + 1]
push eax
call fcn.1001d110
mov byte [esp + 0xf0], 9
lea ecx, [esp + 0x5c]
call fcn.100941a0
jmp 0x10022046
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x2c]
add eax, 5
cmp eax, dword [esp + 0x88]
ja 0x10021daf
mov dword [esp + 0x8c], eax
mov byte [esp + 0xf0], 9
lea ecx, [esp + 0x5c]
call fcn.100941a0
jmp 0x10022046
cmp edx, ebx
jae 0x10021dfe
cmp al, 0x8b
je 0x10021ddd
cmp al, 0xff
je 0x10021ddd
cmp al, 0x87
je 0x10021ddd
cmp al, 0x89
je 0x10021ddd
cmp al, 0x33
jne 0x10021dfe
mov ch, byte [esp + 0x1e]
cmp ch, 0x24
jne 0x10021e02
cmp byte [esp + 0x1c], 4
jne 0x10021e02
cmp byte [esp + 0x1a], 0
je 0x10021e02
mov byte [esp + 0x16], 1
jmp 0x10022027
mov ch, byte [esp + 0x1e]
cmp edx, ebx
jae 0x10021e40
cmp al, 0x81
jne 0x10021e40
cmp cl, 0x6c
jne 0x10021e40
cmp ch, 0x24
jne 0x10021e40
cmp byte [esp + 0x1c], 4
jne 0x10021e40
cmp byte [esp + 0x1a], 0
je 0x10021e40
cmp byte [esp + 0x16], 0
je 0x10021e40
mov ecx, dword [ebp + 0x18]
mov eax, edi
sub eax, dword [ebp + 8]
add eax, 4
mov byte [esp + 0x17], 1
mov dword [ecx], eax
jmp 0x10022027
mov edx, dword [esp + 0x2c]
cmp edx, ebx
jae 0x10021f07
cmp al, 0xe8
jne 0x10021f07
cmp ch, 0xff
jne 0x10021f07
cmp byte [esp + 0x1c], ch
jne 0x10021f07
cmp byte [esp + 0x18], ch
jne 0x10021f07
cmp byte [esp + 0x1a], 0
je 0x10021f07
cmp byte [esp + 0x16], 0
je 0x10021f07
cmp byte [esp + 0x17], 0
je 0x10021f07
movzx eax, cl
mov ecx, 0xff00
or ax, cx
mov byte [esp + 0x19], 1
movzx esi, ax
or esi, 0xffff0000
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov byte [esp + 0xf0], 0xb
lea eax, [esp + 0x68]
push eax
mov eax, dword [esp + 0x4c]
lea edx, [edi + 5]
push edx
mov ecx, dword [eax + 0x14]
call fcn.100979a0
add edi, 4
lea ecx, [esp + 0x84]
add edi, esi
lea eax, [edi + 1]
push eax
call fcn.1001d110
mov byte [esp + 0xf0], 9
lea ecx, [esp + 0x68]
call fcn.100941a0
jmp 0x10022046
cmp esi, ebx
jae 0x10021f43
cmp al, 0x8d
jne 0x10021f43
cmp cl, 0x84
jne 0x10021f43
cmp ch, 1
jne 0x10021f43
cmp byte [esp + 0x20], 0xff
jne 0x10021f43
cmp ah, 0xff
jne 0x10021f43
cmp byte [esp + 0x1a], 0
je 0x10021f43
cmp byte [esp + 0x16], 0
je 0x10021f43
cmp byte [esp + 0x17], 0
je 0x10021f43
mov byte [esp + 0x19], ch
jmp 0x10022027
cmp edx, ebx
jae 0x10021f86
cmp al, 0x2d
je 0x10021f4f
cmp al, 0x3d
jne 0x10021f86
test cl, cl
je 0x10021f58
cmp cl, 0x80
jne 0x10021f86
mov ah, byte [esp + 0x1c]
cmp ch, 1
jne 0x10021f8a
test ah, ah
jne 0x10021f8a
cmp byte [esp + 0x18], ah
jne 0x10021f8a
cmp byte [esp + 0x1a], ah
je 0x10021f8a
cmp byte [esp + 0x16], ah
je 0x10021f8a
cmp byte [esp + 0x17], ah
je 0x10021f8a
mov byte [esp + 0x19], ch
jmp 0x10022027
mov ah, byte [esp + 0x1c]
lea edx, [edi + 5]
cmp edx, ebx
jae 0x10021fc9
cmp al, 0x81
jne 0x10021fc9
cmp cl, 0xeb
jne 0x10021fed
test ch, ch
mov ch, byte [esp + 0x18]
jne 0x10021ff1
cmp ah, 1
jne 0x10021ff1
test ch, ch
jne 0x10021ff1
cmp byte [esp + 0x20], ch
jne 0x10021ff1
cmp byte [esp + 0x1a], ch
je 0x10021ff1
cmp byte [esp + 0x16], ch
je 0x10021ff1
cmp byte [esp + 0x17], ch
je 0x10021ff1
mov byte [esp + 0x19], ah
jmp 0x10022027
cmp al, 0x58
jb 0x10021fed
cmp al, 0x5f
ja 0x10021fed
cmp byte [esp + 0x1a], 0
je 0x10021fed
cmp byte [esp + 0x16], 0
je 0x10021fed
cmp byte [esp + 0x17], 0
je 0x10021fed
cmp byte [esp + 0x19], 0
jne 0x10022022
mov ch, byte [esp + 0x18]
mov edx, dword [esp + 0x28]
cmp edx, ebx
jae 0x1002205c
cmp al, 0xf
jne 0x1002205c
cmp cl, 0x31
jne 0x1002208a
cmp byte [esp + 0x1a], 0
je 0x1002208a
cmp byte [esp + 0x16], 0
je 0x1002208a
cmp byte [esp + 0x17], 0
je 0x1002208a
cmp byte [esp + 0x19], 0
je 0x1002208a
mov byte [esp + 0x1b], 1
lea edx, [esp + 0x3b]
lea ecx, [esp + 0x84]
call fcn.100ae1f0
test eax, eax
je 0x100222d6
dec edi
add edi, eax
inc dword [esp + 0x34]
inc edi
mov dword [esp + 0x24], edi
cmp edi, ebx
jae 0x10022250
mov esi, dword [esp + 0x30]
jmp 0x10021bc0
cmp al, 0xc3
jne 0x1002208a
cmp byte [esp + 0x1a], 0
je 0x1002208a
cmp byte [esp + 0x16], 0
je 0x1002208a
cmp byte [esp + 0x17], 0
je 0x1002208a
cmp byte [esp + 0x19], 0
je 0x1002208a
cmp byte [esp + 0x1b], 0
je 0x1002208a
mov byte [esp + 0x1d], 1
jmp 0x10022027
cmp dword [esp + 0x2c], ebx
jae 0x100221b9
cmp al, 0xe9
jne 0x100221b9
movzx ecx, ch
shl cx, 8
movzx eax, ah
or cx, ax
mov dword [esp + 0x3c], 0
movzx eax, cx
movzx ecx, byte [esp + 0x1e]
mov edx, eax
mov al, byte [esp + 0x1f]
shl cx, 8
movzx eax, al
or cx, ax
shl edx, 0x10
movzx esi, cx
or esi, edx
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov byte [esp + 0xf0], 0xc
lea eax, [esp + 0x3c]
push eax
push edi
mov edi, dword [esp + 0x50]
mov ecx, dword [edi + 0x14]
call fcn.100979a0
test al, al
je 0x1002228c
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
add eax, 4
add esi, eax
movzx eax, byte [0x100d0d6d]
push eax
lea eax, [esp + 0x28]
mov dword [esp + 0x2c], esi
push eax
push ecx
lea eax, [esp + 0x88]
mov dword [esp + 0x30], esi
push eax
lea ecx, [esp + 0x5c]
call fcn.1009d290
cmp byte [esp + 0x80], 0
jne 0x10022173
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x2c]
add eax, 5
cmp eax, dword [esp + 0x88]
ja 0x1002215d
mov dword [esp + 0x8c], eax
mov byte [esp + 0xf0], 9
lea ecx, [esp + 0x3c]
call fcn.100941a0
jmp 0x10022046
push 1
lea eax, [esp + 0x24]
mov ecx, edi
push eax
lea eax, [esp + 0x30]
push eax
push esi
call fcn.100951f0
test al, al
je 0x1002223f
mov edi, dword [esp + 0x28]
lea ecx, [esp + 0x84]
lea eax, [edi + 1]
push eax
call fcn.1001d110
mov byte [esp + 0xf0], 9
lea ecx, [esp + 0x3c]
call fcn.100941a0
jmp 0x10022046
cmp edx, ebx
jae 0x10022027
cmp al, 0xeb
jne 0x10022027
movzx eax, byte [0x100d0d6d]
push eax
lea eax, [esp + 0x28]
movsx esi, cl
push eax
push ecx
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0x64]
call fcn.1009d290
cmp byte [esp + 0x78], 0
jne 0x10022219
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x28]
add eax, 2
cmp eax, dword [esp + 0x88]
ja 0x10022046
mov dword [esp + 0x8c], eax
jmp 0x10022046
mov eax, dword [esp + 0x84]
inc edi
add edi, esi
inc eax
add eax, edi
cmp eax, dword [esp + 0x88]
ja 0x10022046
mov dword [esp + 0x8c], eax
jmp 0x10022046
mov byte [esp + 0xf0], 9
lea ecx, [esp + 0x3c]
call fcn.100941a0
mov ch, byte [esp + 0x1d]
mov ah, byte [esp + 0x1b]
mov dl, byte [esp + 0x19]
mov cl, byte [esp + 0x17]
mov al, byte [esp + 0x16]
mov edi, dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
cmp byte [esp + 0x1a], 0
je 0x100222dc
test al, al
je 0x100222dc
test cl, cl
je 0x100222dc
test dl, dl
je 0x100222dc
test ah, ah
je 0x100222dc
test ch, ch
je 0x100222dc
mov esi, 1
jmp 0x100222de
mov byte [esp + 0xf0], 9
mov eax, dword [esp + 0x3c]
mov edi, dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
test eax, eax
je 0x100222c0
push eax
call edi
add esp, 4
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov al, byte [esp + 0x16]
mov cl, byte [esp + 0x17]
mov dl, byte [esp + 0x19]
mov ah, byte [esp + 0x1b]
mov ch, byte [esp + 0x1d]
jmp 0x1002226a
mov edi, dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
xor esi, esi
mov byte [esp + 0xf0], 0xe
lea ecx, [esp + 0x54]
mov eax, dword [esp + 0x54]
push eax
push dword [eax]
lea eax, [esp + 0x2c]
push eax
call fcn.10099f40
mov byte [esp + 0xf0], 4
push dword [esp + 0x54]
call edi
add esp, 4
mov dword [esp + 0xf0], 0x12
lea ecx, [esp + 0x4c]
mov eax, dword [esp + 0x4c]
push eax
push dword [eax]
lea eax, [esp + 0x2c]
push eax
call fcn.10099f40
mov dword [esp + 0xf0], 0xffffffff
push dword [esp + 0x4c]
call edi
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0xe8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret