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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x40
mov eax, dword [0x567b10]
xor eax, esp
mov dword [esp + 0x3c], eax
mov eax, dword [ecx + 0x1c8]
mov edx, dword [ecx + 0x1cc]
mov edi, dword [eax + edx*4 - 4]
cmp byte [edi + 0x2c], 0x54
jne 0x4a23a2
mov ebp, dword [edi + 0x14]
cmp ebp, 2
jb 0x4a23a2
mov esi, dword [edi + 0x10]
movzx eax, word [esi]
cmp eax, 0x2240
je 0x4a2089
cmp ebp, 3
jb 0x4a23a2
mov esi, dword [edi + 0x10]
movzx eax, word [esi]
xor eax, 0x4024
movzx edx, byte [esi + 2]
xor edx, 0x22
or dx, ax
jne 0x4a23a2
mov edx, dword [ecx + 0x24]
mov eax, dword [edx + 0x58]
mov ebx, dword [edx + 0x224]
mov dword [esp + 0x24], ebx
sub ebx, ebp
movzx esi, word [esi]
xor edx, edx
cmp esi, 0x2240
sete dl
neg edx
lea esi, [ebx + edx]
add esi, 3
jmp 0x4a20c3
add esi, 1
cmp esi, eax
je 0x4a23a2
cmp byte [esi], 0x22
jne 0x4a20c0
lea edx, [esi + 1]
cmp edx, eax
jae 0x4a20e0
cmp byte [edx], 0x22
jne 0x4a20e0
mov esi, edx
jmp 0x4a20c0
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], edx
mov dword [esp + 8], ecx
mov ecx, esi
sub ecx, ebx
mov eax, edi
xor edi, edi
mov dword [eax + 0x10], ebx
mov ebp, 0
inc ecx
mov dword [esp + 0x10], eax
mov dword [eax + 0x14], ecx
je 0x4a212a
push ecx
push 0xa
push ebx
mov ebp, ecx
call sub.VCRUNTIME140.dll_memchr
mov ecx, ebp
add esp, 0xc
test eax, eax
je 0x4a212a
sub eax, ebx
mov ebp, ecx
cmp eax, 0xffffffff
je 0x4a212a
cmp ecx, eax
cmovb eax, ecx
mov ebp, eax
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x1bc]
mov dword [esp + 0x18], eax
mov dword [esp + 4], ebx
mov edx, ebx
mov dword [esp], 0
test ebp, ebp
mov ebx, ecx
je 0x4a220b
mov eax, dword [esp + 8]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x1c4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x54]
mov dword [esp + 0x28], eax
mov dword [esp], 0
mov edx, dword [esp + 4]
mov dword [esp + 0x14], ebx
jmp 0x4a2195
mov dword [esp], ecx
mov ebx, dword [esp + 0x14]
lea eax, [edi + 1]
cmp ebp, edi
cmovbe eax, ebp
add edx, eax
sub ebp, eax
je 0x4a2209
push ebp
push 9
push edx
mov ebx, edx
call sub.VCRUNTIME140.dll_memchr
add esp, 0xc
test eax, eax
je 0x4a21fb
mov edi, eax
sub edi, ebx
cmp edi, 0xffffffff
mov edx, ebx
je 0x4a2201
cmp ebp, edi
mov ebx, edi
cmovb ebx, ebp
cmp dword [esp + 0x18], 0
mov dword [esp + 0xc], edx
je 0x4a21c8
mov eax, ebx
jmp 0x4a21da
push ebx
push edx
call fcn.0044ce70
mov edx, dword [esp + 0x14]
add esp, 8
test eax, eax
js 0x4a21c4
mov ecx, dword [esp]
add ecx, eax
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x4a2180
mov eax, dword [esp + 0x28]
add eax, ecx
xor edx, edx
div ebx
add ecx, ebx
sub ecx, edx
mov edx, dword [esp + 0xc]
jmp 0x4a2180
mov edi, ebp
mov edx, ebx
jmp 0x4a2203
mov edi, ebp
mov ebx, dword [esp + 0x14]
jmp 0x4a220b
xor edi, edi
cmp dword [esp + 0x18], 0
je 0x4a221a
mov eax, edi
mov ebp, dword [esp + 4]
jmp 0x4a222e
push edi
push edx
call fcn.0044ce70
add esp, 8
test eax, eax
mov ebp, dword [esp + 4]
jns 0x4a222e
mov eax, edi
add eax, dword [esp]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x38], eax
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x24]
add eax, esi
add eax, 2
mov ecx, esi
mov edi, dword [esp + 8]
nop dword [eax + eax]
cmp eax, 1
je 0x4a2348
add eax, 0xffffffff
cmp byte [ecx], 0xa
lea ecx, [ecx - 1]
jne 0x4a2250
mov ecx, dword [esp + 0x10]
or byte [ecx + 0x28], 2
mov ecx, dword [edi + 0x1bc]
mov dword [esp + 0xc], ecx
cmp ebx, eax
cmovb eax, ebx
mov ecx, edi
mov edi, ebx
sub edi, eax
cmp edi, ebx
cmovae edi, ebx
add ebp, eax
test edi, edi
je 0x4a2314
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + 0x1c4]
mov dword [esp + 0x18], eax
mov dword [esp], 0
jmp 0x4a22bb
mov dword [esp], ecx
mov ebp, dword [esp + 4]
lea eax, [ebx + 1]
cmp edi, ebx
cmovbe eax, edi
add ebp, eax
sub edi, eax
je 0x4a231f
push edi
push 9
push ebp
call sub.VCRUNTIME140.dll_memchr
add esp, 0xc
test eax, eax
je 0x4a2321
mov ebx, eax
sub ebx, ebp
cmp ebx, 0xffffffff
je 0x4a2321
mov dword [esp + 4], ebp
cmp edi, ebx
mov ebp, ebx
cmovb ebp, edi
cmp dword [esp + 0xc], 0
je 0x4a22ea
mov eax, ebp
jmp 0x4a22fb
push ebp
push dword [esp + 8]
call fcn.0044ce70
add esp, 8
test eax, eax
js 0x4a22e6
mov ecx, dword [esp]
add ecx, eax
mov ebp, dword [esp + 0x18]
test ebp, ebp
je 0x4a22a6
mov eax, ecx
xor edx, edx
div ebp
add ecx, ebp
sub ecx, edx
jmp 0x4a22a6
xor edi, edi
mov dword [esp], 0
jmp 0x4a2321
xor edi, edi
cmp dword [esp + 0xc], 0
je 0x4a232c
mov eax, edi
jmp 0x4a233a
push edi
push ebp
call fcn.0044ce70
add esp, 8
test eax, eax
js 0x4a2328
add eax, dword [esp]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x3c], eax
mov edi, dword [esp + 8]
mov ecx, dword [edi + 0x24]
cmp esi, dword [ecx + 0x58]
jae 0x4a2366
lea eax, [esp + 0x30]
push 1
push dword [esp + 0x20]
push eax
call fcn.004ba760
mov eax, dword [esp + 0x30]
jmp 0x4a2389
mov eax, edi
mov edi, dword [edi + 0x28]
mov esi, dword [eax + 0x2c]
mov byte [esp + 0x34], 0
lea eax, [esi + 1]
cmp eax, 2
jae 0x4a23b5
mov dword [esp + 0x30], 0
xor eax, eax
mov edi, dword [esp + 8]
mov ecx, dword [edi + 0x28]
lea edx, [esp + 0x34]
push eax
push edx
call fcn.004071d0
mov ecx, edi
push dword [esp + 0x38]
call fcn.004a30d0
mov ecx, dword [esp + 0x3c]
xor ecx, esp
call fcn.00533ace
add esp, 0x40
pop esi
pop edi
pop ebx
pop ebp
ret
test esi, esi
js 0x4a23c0
lea ecx, [edi + 0x6c]
mov eax, esi
jmp 0x4a23dd
mov eax, 0xfffffffe
sub eax, esi
mov ecx, eax
shr ecx, 5
mov edx, dword [edi + 0x8c]
mov ecx, dword [edx + ecx*4]
bt ecx, eax
jae 0x4a23ff
lea ecx, [edi + 0x78]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4a237b
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov ebx, dword [eax]
test ebx, ebx
js 0x4a237b
mov ecx, edi
push esi
call fcn.00452eb0
add eax, ebx
mov dword [esp + 0x30], eax
jmp 0x4a2385
lea edx, [esp + 0x34]
mov ecx, edi
push edx
push eax
call fcn.0044fcd0
cmp byte [esp + 0x34], 0
jne 0x4a237b
jmp 0x4a23e9