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

Disassembly:
mov ecx, dword [0x98cddc]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x622df2
sub esp, 0x58
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x30]
test edx, edx
jg 0x62296d
mov edx, dword [eax + 0x14]
test edx, edx
je 0x62294c
mov edx, dword [edx + 4]
test edx, edx
je 0x62294c
mov edx, dword [eax + 0x10]
mov edx, dword [edx + 0xcc]
test edx, edx
je 0x62294c
mov dword [esp + 0x50], ecx
mov dword [esp], eax
call fcn.00622e00
mov eax, dword [esp + 4]
test eax, eax
jne 0x62293c
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0x3c]
mov ecx, dword [ecx + 0xc]
mov dword [esp], ecx
call fcn.00492ba0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x5c]
mov dword [edx + 0x40], eax
mov ebx, dword [0x98d0b8]
test ebx, ebx
je 0x62254f
call fcn.00471ac0
mov dword [edi], ecx
mov ebx, dword [edx + 0x44]
mov dword [edi + 4], ebx
mov dword [edx + 0x44], ecx
test eax, eax
je 0x62257b
mov dword [esp + 0x54], ecx
mov eax, dword [eax + 4]
lea ecx, [0x9612b8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409f80
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x5c]
mov ebx, dword [edx + 0x10]
lea ebp, [0x7a5100]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call fcn.0063cea0
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x62292c
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0x60]
test ecx, ecx
je 0x62264f
mov ecx, dword [eax + 0x3c]
mov ecx, dword [ecx + 0xc]
mov dword [esp], ecx
call fcn.00492ba0
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0x60]
mov edx, dword [esp + 4]
mov ebx, dword [esp + 8]
mov dword [ecx + 0x18], edx
mov edx, dword [0x98d0b8]
test edx, edx
je 0x6225ea
call fcn.00471ac0
mov dword [edi], ebx
mov edx, dword [ecx + 0x1c]
mov dword [edi + 4], edx
mov dword [ecx + 0x1c], ebx
mov ecx, dword [eax + 0x60]
mov edx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
test edx, edx
je 0x62261f
mov dword [esp + 0x54], ecx
mov eax, dword [edx + 4]
lea ecx, [0x9612c8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409f80
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
mov ebx, dword [eax + 0x60]
mov ebx, dword [ebx + 0x14]
lea ebp, [0x7a5100]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
call fcn.0063cea0
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x62291c
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0x14]
cmp dword [0x960f0c], edx
je 0x622661
xor ecx, ecx
jmp 0x622685
mov eax, dword [0x960f08]
mov ecx, dword [ecx + 0x10]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.00402e10
movzx eax, byte [esp + 0xc]
mov ecx, eax
mov eax, dword [esp + 0x5c]
test cl, cl
je 0x6226e4
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x10]
test ecx, ecx
je 0x622698
xor ecx, ecx
xor edx, edx
jmp 0x6226c4
movzx ecx, byte [eax + 0x39]
test cl, cl
je 0x6226a6
xor ecx, ecx
xor edx, edx
jmp 0x6226c4
mov byte [eax + 0x39], 1
mov ecx, dword [eax]
mov dword [esp], ecx
call fcn.00614d00
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, ecx
mov ecx, eax
mov eax, dword [esp + 0x5c]
test ecx, ecx
jne 0x622910
mov dword [esp], eax
call fcn.00623190
mov eax, dword [esp + 4]
test eax, eax
jne 0x622900
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0x60]
test ecx, ecx
je 0x6228f5
mov edx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
mov ebx, dword [eax + 0x3c]
mov ebx, dword [ebx + 0xc]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.0063cf90
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 8]
cmp edx, 0x1e
jb 0x622de7
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3c], eax
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x4c], ebx
mov ebp, dword [eax + 0x1c]
mov ecx, dword [ecx]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x1e
mov dword [esp + 0xc], edx
call ebp
lea eax, [0x6e06e0]
mov dword [esp], eax
mov dword [esp + 4], 8
mov dword [esp + 8], 8
call fcn.0046ca20
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x4c]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], 8
mov dword [esp + 0xc], 8
call ecx
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 4]
cmp edx, 0x26
jb 0x622ddb
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax + 0x1c]
mov ebp, dword [ecx]
mov ecx, dword [ecx + 8]
mov esi, dword [esp + 0x4c]
mov dword [esp], esi
add ecx, 0xffffffda
add edx, 0xffffffda
mov edi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 0x26
add ecx, ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], edi
call ebx
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0x3c]
mov edx, dword [eax + 0x60]
mov edx, dword [edx + 0x14]
mov ebx, dword [edx + 0x10]
mov ebp, dword [edx + 0x14]
mov edx, dword [edx + 0x18]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
call fcn.0063efa0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x40], edx
mov ebx, dword [esp + 0x3c]
mov ebx, dword [ebx + 0x18]
mov ebp, dword [esp + 0x4c]
mov dword [esp], ebp
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call ebx
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0x3c]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov dword [esp], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xc], ecx
lea ecx, [0x734ff0]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 0x17
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], 8
call fcn.0063e590
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0x14]
lea ebx, [edx - 8]
cmp edx, ebx
jb 0x622dd2
mov ebp, dword [esp + 0x2c]
mov esi, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x18]
sub ecx, edx
add ecx, 8
neg ecx
sar ecx, 0x1f
and ecx, ebx
add ecx, esi
cmp ebp, 8
jne 0x6228ee
mov edx, dword [esp + 0x28]
xor ebx, ebx
xor esi, esi
jmp 0x622dbd
xor ecx, ecx
jmp 0x622c5a
xor ecx, ecx
xor edx, edx
xor ebx, ebx
jmp 0x6229ad
mov ecx, dword [esp + 8]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
add esp, 0x58
ret
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
add esp, 0x58
ret
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
add esp, 0x58
ret
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
add esp, 0x58
ret
mov ecx, dword [esp + 8]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
add esp, 0x58
ret
mov dword [esp], ecx
mov byte [esp + 4], 0x50
call fcn.00613d60
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
add esp, 0x58
ret
mov dword [esp], ecx
mov byte [esp + 4], 0x46
call fcn.00613d60
lea eax, [0x6ec1a0]
mov dword [esp], eax
call fcn.0040bc10
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x2f
lea ecx, [0x740555]
mov dword [eax], ecx
lea ecx, [0x7a4344]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
add esp, 0x58
ret
mov dword [esp + 0x48], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], ebx
mov ebp, dword [eax + 0x40]
mov esi, dword [eax + 0x44]
test ebp, ebp
je 0x6229e8
mov dword [esp + 0x54], esi
mov eax, dword [ebp + 4]
lea ecx, [0x9612d8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409f80
mov ebp, dword [esp + 8]
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x54]
mov ecx, dword [eax + 0xc]
lea edx, [0x7a5114]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], esi
call fcn.0063cea0
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x622c4a
mov eax, dword [esp + 0x50]
mov byte [eax + 0x1cc], 1
mov ecx, dword [esp + 0x5c]
mov dword [esp], ecx
call fcn.006247a0
mov eax, dword [esp + 4]
test eax, eax
jne 0x622c3a
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x10]
test ecx, ecx
je 0x622a47
xor ecx, ecx
xor edx, edx
jmp 0x622a73
movzx ecx, byte [eax + 0x39]
test cl, cl
je 0x622a55
xor ecx, ecx
xor edx, edx
jmp 0x622a73
mov byte [eax + 0x39], 1
mov ecx, dword [eax]
mov dword [esp], ecx
call fcn.00614d00
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, ecx
mov ecx, eax
mov eax, dword [esp + 0x5c]
test ecx, ecx
jne 0x622c2e
mov dword [esp], eax
call fcn.00624c60
mov eax, dword [esp + 4]
test eax, eax
jne 0x622c1e
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
call fcn.00625630
mov eax, dword [esp + 4]
test eax, eax
jne 0x622c0e
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
call fcn.00625df0
mov eax, dword [esp + 4]
test eax, eax
jne 0x622bfe
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
call fcn.00626650
mov eax, dword [esp + 4]
test eax, eax
jne 0x622bee
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
call fcn.00626b20
mov eax, dword [esp + 4]
test eax, eax
jne 0x622bde
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
call fcn.006271c0
mov eax, dword [esp + 4]
test eax, eax
jne 0x622bce
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.006141d0
mov eax, dword [esp + 8]
test eax, eax
jne 0x622bbe
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x60]
test eax, eax
je 0x622b92
movzx eax, byte [eax + 0x24]
test al, al
je 0x622b92
mov eax, dword [esp + 0x50]
mov dword [esp], eax
mov byte [esp + 4], 0x79
call fcn.00613d60
lea eax, [0x6ed220]
mov dword [esp], eax
call fcn.0040bc10
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x34]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x38]
mov dword [eax + 8], ecx
mov ecx, dword [0x98d0b8]
test ecx, ecx
jne 0x622b73
mov ecx, dword [esp + 0x48]
jmp 0x622b7e
call fcn.00471ab0
mov ecx, dword [esp + 0x48]
mov dword [edi], ecx
mov dword [eax], ecx
lea ecx, [0x7a4a20]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
add esp, 0x58
ret
mov eax, dword [esp + 0x50]
add eax, 0x14
nop
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.004763d0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
add esp, 0x58
ret
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
add esp, 0x58
ret
mov ecx, dword [esp + 8]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
add esp, 0x58
ret
mov ecx, dword [esp + 8]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
add esp, 0x58
ret
mov ecx, dword [esp + 8]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
add esp, 0x58
ret
mov ecx, dword [esp + 8]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
add esp, 0x58
ret
mov ecx, dword [esp + 8]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
add esp, 0x58
ret
mov ecx, dword [esp + 8]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
add esp, 0x58
ret
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
add esp, 0x58
ret
mov ecx, dword [esp + 8]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
add esp, 0x58
ret
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
add esp, 0x58
ret
cmp ecx, 1
jne 0x622d81
mov ecx, dword [0x98d0b8]
mov edx, dword [eax + 0x60]
mov edx, dword [edx + 0x14]
test ecx, ecx
je 0x622c80
call fcn.00471ac0
mov dword [edi], edx
mov ecx, dword [eax + 0x10]
mov dword [edi + 4], ecx
mov dword [eax + 0x10], edx
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx + 0x2c]
mov ebx, dword [edx + 0x44]
mov edx, dword [edx + 0x40]
mov dword [ecx + 0x7c], ebx
mov ebx, dword [0x98d0b8]
test ebx, ebx
je 0x622caa
call fcn.00471ac0
mov dword [edi], edx
mov ebx, dword [ecx + 0x78]
mov dword [edi + 4], ebx
mov dword [ecx + 0x78], edx
mov edx, dword [eax + 0x60]
mov ebx, dword [edx + 0x18]
mov edx, dword [edx + 0x1c]
mov dword [eax + 0x40], ebx
mov ebx, dword [0x98d0b8]
test ebx, ebx
je 0x622cd0
call fcn.00471ac0
mov dword [edi], edx
mov ebx, dword [eax + 0x44]
mov dword [edi + 4], ebx
mov dword [eax + 0x44], edx
mov byte [ecx + 0x94], 1
mov edx, dword [eax + 0xc]
mov ebx, dword [edx + 0x78]
test ebx, ebx
jne 0x622d41
mov ebx, dword [eax + 0x10]
mov ebx, dword [ebx + 0x44]
test ebx, ebx
jne 0x622d39
movzx edx, byte [edx + 0x84]
test dl, dl
je 0x622d39
mov dword [esp], ecx
mov byte [esp + 4], 0x6e
call fcn.00613d60
lea eax, [0x6ec1a0]
mov dword [esp], eax
call fcn.0040bc10
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x35
lea ecx, [0x741f10]
mov dword [eax], ecx
lea ecx, [0x7a4344]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
add esp, 0x58
ret
xor ebx, ebx
xor edx, edx
xor ebp, ebp
jmp 0x622d9f
mov dword [esp], ecx
mov byte [esp + 4], 0x6e
call fcn.00613d60
lea eax, [0x6ec1a0]
mov dword [esp], eax
call fcn.0040bc10
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x5b
lea ecx, [0x745a72]
mov dword [eax], ecx
lea ecx, [0x7a4344]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
add esp, 0x58
ret
mov ecx, dword [eax + 0x60]
mov byte [ecx + 0x24], 1
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0x78]
mov ebx, dword [ecx + 0x7c]
mov ecx, dword [ecx + 0x80]
mov ebp, edx
mov edx, ecx
mov ecx, dword [esp + 0x50]
mov ecx, ebp
mov esi, edx
mov edx, ebx
mov ebx, esi
jmp 0x6229ad
movzx edi, byte [edx + ebx]
movzx eax, byte [ebx + ecx]
xor edi, eax
inc ebx
or esi, edi
mov eax, dword [esp + 0x5c]
cmp ebx, ebp
jl 0x622dac
xchg esi, eax
movzx edx, al
xchg esi, eax
lea ecx, [edx - 1]
nop
shr ecx, 0x1f
jmp 0x622c5a
mov eax, ebx
mov ecx, edx
call fcn.00471b90
mov eax, 0x26
mov ecx, edx
call fcn.00471b90
mov ecx, 0x1e
call fcn.00471b70
nop
call fcn.004706b0
jmp fcn.006224b0