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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x28
mov dword [ebp - 0x28], edx
mov edx, ecx
mov ecx, dword [ebp + 0x1c]
mov esi, dword [edx + 8]
test esi, esi
mov dword [ebp - 0x18], edx
je 0x1006274e
mov ebx, dword [ebp + 0x10]
mov edi, dword [edx + 0x28]
mov eax, dword [edx + 0x38]
mov dword [ebp - 0x34], eax
dec eax
mov dword [ebp - 0x20], eax
mov dword [edx + 0x38], eax
test ecx, ecx
js 0x10062611
mov dword [ebp - 0x1c], edi
mov ecx, dword [ebp + 0x14]
mov edi, dword [ebx + 0x14]
test edi, edi
jle 0x10062382
mov eax, dword [ebp + 0x18]
inc eax
mov dword [ebp - 0x10], eax
xor ebx, ebx
mov eax, dword [ecx + ebx*4]
test ax, ax
js 0x10062339
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x1c]
and edx, 0x20
jne 0x10062950
cwde
add eax, dword [ebp - 0x10]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jle 0x10062693
lea edx, [ecx + 1]
mov dword [esi + 0x6c], edx
mov edx, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x32
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp - 0x20]
mov dword [edx + ecx*4 + 8], eax
xor eax, eax
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], eax
inc ebx
mov eax, dword [ebp + 0x10]
mov edi, dword [eax + 0x14]
cmp ebx, edi
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp + 0x14]
jl 0x10062320
mov ebx, dword [ebp - 0x1c]
dec ebx
cmp dword [ebp + 0x20], 0
jne 0x10062537
cmp dword [ebp + 0xc], 0
jne 0x1006276e
mov al, byte [edx + 0x13]
test al, al
je 0x10062602
dec al
mov byte [edx + 0x13], al
movzx eax, al
mov eax, dword [edx + eax*4 + 0xa0]
mov dword [ebp - 0x10], eax
mov edi, dword [ebp + 8]
mov eax, dword [ecx]
test ax, ax
js 0x100623d2
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x1c]
and edx, 0x20
jne 0x10062996
cwde
mov ecx, dword [ebp + 0x18]
add eax, ecx
inc eax
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jle 0x100626ad
lea edx, [ecx + 1]
mov dword [esi + 0x6c], edx
mov edx, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x51
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp - 0x10]
mov dword [edx + ecx*4 + 8], eax
xor eax, eax
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], eax
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jle 0x100626c7
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x68]
mov edx, ecx
mov dword [ebp - 0x1c], ecx
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0xd
mov edx, dword [ebp - 0x10]
mov dword [eax + ecx*4 + 4], edx
xor edx, edx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], edx
cmp dword [ebp + 0x1c], 1
mov ecx, dword [ebp - 0x18]
jne 0x1006245a
mov eax, dword [ebp + 0x10]
cmp dword [eax], edi
je 0x100629d9
mov edx, ebx
push 0x70
push edi
push dword [ebp - 0x28]
call fcn.100412d0
add esp, 0xc
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x100626e5
lea ecx, [eax + 1]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x1f
mov dword [ecx + eax*4 + 4], ebx
xor edx, edx
mov dword [ecx + eax*4 + 8], edx
mov edi, dword [ebp - 0x10]
mov dword [ecx + eax*4 + 0xc], edi
mov dword [ecx + eax*4 + 0x10], edx
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x100626ff
lea ecx, [eax + 1]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 9
xor edx, edx
mov dword [ecx + eax*4 + 4], edx
mov edi, dword [ebp - 0x20]
mov dword [ecx + eax*4 + 8], edi
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
mov edi, ebx
mov edx, dword [esi]
mov ecx, dword [esi + 0x6c]
mov eax, 0x101f4350
cmp byte [edx + 0x57], 0
mov edx, 0x101f4350
jne 0x100624f5
lea edx, [ecx + ecx*4]
mov ebx, dword [esi + 0x68]
lea edx, [ebx + edx*4]
add edx, 0xffffffd8
mov dword [edx + 8], ecx
mov edx, dword [esi]
mov ecx, dword [esi + 0x6c]
cmp byte [edx + 0x57], 0
mov ebx, edi
jne 0x10062511
mov eax, dword [ebp - 0x1c]
lea eax, [eax + eax*4]
shl eax, 2
add eax, dword [esi + 0x68]
mov dword [eax + 8], ecx
cmp dword [ebp - 0x10], 0
mov edx, dword [ebp - 0x18]
je 0x10062537
movzx eax, byte [edx + 0x13]
cmp eax, 7
ja 0x10062537
mov ecx, eax
inc cl
mov byte [edx + 0x13], cl
mov ecx, dword [ebp - 0x10]
mov dword [edx + eax*4 + 0xa0], ecx
mov eax, dword [ebp + 0x10]
mov al, byte [eax + 0x18]
test al, al
mov edi, dword [ebp - 0x34]
jne 0x10062578
mov eax, dword [edx]
test byte [eax + 0x22], 8
jne 0x1006255c
cmp dword [edx + 0x78], 0
jne 0x1006255c
cmp byte [edx + 0x14], 0
je 0x10062658
cmp dword [ebp + 0x1c], 0
jle 0x10062651
mov eax, dword [edx + 0x78]
test eax, eax
cmove eax, edx
mov byte [eax + 0x15], 1
mov eax, dword [ebp + 0x10]
mov al, byte [eax + 0x18]
movzx eax, al
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jle 0x1006271a
lea edx, [ecx + 1]
mov dword [esi + 0x6c], edx
mov edx, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x9e
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp + 0x1c]
mov dword [edx + ecx*4 + 8], eax
xor eax, eax
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], eax
mov ecx, dword [esi + 0xc]
neg edi
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x10062940
mov eax, dword [esi + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + edi*4], eax
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x1006267a
lea ecx, [eax + 1]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x7a
mov dword [ecx + eax*4 + 4], ebx
xor edx, edx
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
add esp, 0x28
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [edx + 0x2c]
inc eax
mov dword [ebp - 0x10], eax
mov dword [edx + 0x2c], eax
jmp 0x100623b7
movzx eax, byte [ebx + 0x18]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jle 0x10062734
lea edx, [ecx + 1]
mov dword [esi + 0x6c], edx
mov edx, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x31
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp - 0x20]
mov dword [edx + ecx*4 + 8], eax
xor eax, eax
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], eax
mov edx, dword [ebp - 0x18]
jmp 0x1006230a
xor eax, eax
jmp 0x10062578
sub esp, 0x10
movaps xmm0, xmmword [0x101b13f0]
movups xmmword [esp], xmm0
mov ecx, edx
mov edx, 0x313
call fcn.10057460
add esp, 0x10
jmp 0x100625af
xor eax, eax
mov ecx, esi
mov edx, 0x7a
push eax
push eax
push ebx
call fcn.10021190
add esp, 0x34
jmp 0x100625fd
mov ecx, esi
mov edx, 0x32
push 0
push dword [ebp - 0x20]
push eax
call fcn.10021190
add esp, 0xc
jmp 0x10062371
mov ecx, esi
mov edx, 0x51
push 0
push dword [ebp - 0x10]
push eax
call fcn.10021190
add esp, 0xc
jmp 0x1006240d
xor eax, eax
mov ecx, esi
mov edx, 0xd
push eax
push eax
push dword [ebp - 0x10]
call fcn.10021190
add esp, 0xc
mov dword [ebp - 0x1c], eax
jmp 0x10062446
mov ecx, esi
mov edx, 0x1f
push dword [ebp - 0x10]
push 0
push ebx
call fcn.10021190
add esp, 0xc
jmp 0x1006249e
xor eax, eax
mov ecx, esi
mov edx, 9
push eax
push dword [ebp - 0x20]
push eax
call fcn.10021190
add esp, 0xc
jmp 0x100624d2
mov ecx, esi
mov edx, 0x9e
push 0
push dword [ebp + 0x1c]
push eax
call fcn.10021190
add esp, 0xc
jmp 0x100625af
mov ecx, esi
mov edx, 0x31
push 0
push dword [ebp - 0x20]
push eax
call fcn.10021190
add esp, 0xc
jmp 0x10062649
cmp dword [edx + 0x78], 0
je 0x10062a2e
mov esi, dword [ebp - 0x18]
mov ecx, esi
call fcn.1002fa90
mov edx, esi
mov esi, eax
mov ecx, dword [ebp + 0x1c]
jmp 0x100622ef
mov ecx, edx
mov edx, edi
call fcn.10057c40
mov dword [ebp - 0x14], eax
mov ecx, esi
mov edx, 0x70
push dword [ebp - 0x28]
mov eax, dword [ebp + 0xc]
push dword [eax + 0x2c]
mov dword [ebp - 0x1c], ebx
push ebx
call fcn.10030110
add esp, 0xc
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp + 0xc]
call fcn.10170170
test edi, edi
jle 0x100627e5
mov eax, dword [ebp + 0x18]
inc eax
mov dword [ebp - 0x28], eax
xor ebx, ebx
mov eax, dword [ebp - 0x14]
add eax, ebx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x14]
movsx edx, word [eax + ebx*4]
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
call fcn.10159380
cwde
add eax, dword [ebp - 0x28]
mov ecx, esi
mov edx, 0x50
push 0
push dword [ebp - 0x10]
push eax
call fcn.10030110
add esp, 0xc
inc ebx
cmp edi, ebx
jne 0x100627ae
cmp dword [ebp + 0x1c], 1
jne 0x1006289b
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
cmp dword [eax], ecx
jne 0x1006289b
test edi, edi
jle 0x10062885
mov eax, dword [esi + 0x6c]
add eax, edi
inc eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x18]
inc eax
mov dword [ebp - 0x10], eax
xor ebx, ebx
mov eax, dword [ebp + 0x14]
movsx edx, word [eax + ebx*4]
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
call fcn.10159380
cwde
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 0xc]
movsx edx, word [eax + ebx*2]
mov dword [ebp - 0x2c], edx
call fcn.10159380
cwde
add eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x2c]
cmp dx, word [ecx + 0x20]
cmove eax, dword [ebp + 0x18]
mov ecx, esi
mov edx, 0x34
push eax
push dword [ebp - 0x24]
push dword [ebp - 0x28]
call fcn.10030110
add esp, 0xc
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x10062880
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 0x10
inc ebx
cmp edi, ebx
jne 0x10062817
xor eax, eax
mov ecx, esi
mov edx, 9
push eax
push dword [ebp - 0x20]
push eax
call fcn.10030110
add esp, 0xc
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x10], eax
test eax, eax
jne 0x100628b8
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
mov edx, dword [ebp + 0xc]
call fcn.100428d0
mov dword [ebp - 0x10], eax
mov ecx, esi
mov edx, 0x60
push 0
push edi
mov ebx, dword [ebp - 0x14]
push ebx
call fcn.10030110
add esp, 0xc
mov ecx, esi
mov edx, eax
push edi
push dword [ebp - 0x10]
call fcn.1003a6c0
add esp, 8
mov ecx, esi
mov edx, 0x1d
push ebx
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
call fcn.10030110
add esp, 0xc
mov ecx, dword [esi]
cmp byte [ecx + 0x57], 0
jne 0x1006290b
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov dword [ecx + eax*4 + 0x10], edi
cmp edi, 1
jne 0x10062a11
cmp dword [ebp - 0x14], 0
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
je 0x10062537
movzx eax, byte [edx + 0x13]
cmp eax, 7
ja 0x10062537
mov ecx, eax
inc cl
mov byte [edx + 0x13], cl
mov ecx, dword [ebp - 0x14]
jmp 0x10062530
mov edx, esi
push edi
call fcn.100329e0
add esp, 4
jmp 0x100625c9
movsx edx, ax
mov dword [ebp - 0x24], edx
mov edx, dword [ecx + 4]
mov dword [ebp - 0x30], edx
test ax, ax
je 0x10062a49
mov edx, dword [ebp - 0x30]
add edx, 0xe
mov dword [ebp - 0x14], 0
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x2c], edi
movzx edi, word [edx]
bt edi, 5
mov edi, dword [ebp - 0x14]
sbb di, 0xffff
mov dword [ebp - 0x14], edi
add edx, 0x10
dec dword [ebp - 0x2c]
jne 0x10062978
jmp 0x10062a50
mov dword [ebp - 0x1c], ebx
movsx ebx, ax
mov edx, dword [ecx + 4]
mov dword [ebp - 0x24], edx
test ax, ax
je 0x10062a74
mov edx, dword [ebp - 0x24]
add edx, 0xe
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x2c], ebx
movzx edi, word [edx]
bt edi, 5
mov edi, dword [ebp - 0x14]
sbb di, 0xffff
mov dword [ebp - 0x14], edi
add edx, 0x10
dec dword [ebp - 0x2c]
jne 0x100629bb
jmp 0x10062a7b
mov ecx, esi
mov edx, 0x35
push dword [ebp - 0x10]
push dword [ebp - 0x20]
push dword [ebp + 0x18]
call fcn.10030110
mov ecx, dword [ebp - 0x18]
add esp, 0xc
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x1006245a
mov edx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov word [edx + eax*4 - 0x12], 0x90
jmp 0x1006245a
mov edx, dword [ebp - 0x18]
cmp dword [edx + 0x1c], edi
mov ebx, dword [ebp - 0x1c]
jge 0x10062537
mov dword [edx + 0x1c], edi
mov eax, dword [ebp - 0x14]
mov dword [edx + 0x20], eax
jmp 0x10062537
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
test byte [eax + 0x50], 8
jne 0x10062758
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x17], 1
jmp 0x10062758
mov dword [ebp - 0x14], 0
mov edx, dword [ebp - 0x24]
shl edx, 4
mov edi, dword [ebp - 0x30]
test byte [edi + edx + 0xe], 0x20
jne 0x10062a68
mov eax, dword [ebp - 0x14]
jmp 0x10062339
sub eax, dword [ebp - 0x14]
add ax, word [ecx + 0x24]
jmp 0x10062339
mov dword [ebp - 0x14], 0
shl ebx, 4
mov edx, dword [ebp - 0x24]
test byte [edx + ebx + 0xe], 0x20
jne 0x10062a8d
mov eax, dword [ebp - 0x14]
jmp 0x10062a94
sub eax, dword [ebp - 0x14]
add ax, word [ecx + 0x24]
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp + 8]
jmp 0x100623d2