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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x64
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x28]
mov dword [esp + 0x20], eax
inc eax
mov dword [edi + 0x28], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x1c], 0
test eax, eax
jne 0x4a3713
mov ebx, edi
call fcn.004c5e20
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0x10]
shr eax, 2
and eax, 1
cmp dword [ebp + 0x14], 0
mov dword [esp + 0x3c], eax
je 0x4a3764
test dword [esi + 4], 0x800
je 0x4a3764
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov ebx, dword [eax]
xor esi, esi
test ebx, ebx
jle 0x4a3759
lea edi, [eax + 8]
mov eax, dword [edi]
call fcn.004a33f0
test eax, eax
jne 0x4a3756
inc esi
add edi, 0x18
cmp esi, ebx
jl 0x4a3743
mov edi, dword [ebp + 8]
cmp esi, ebx
jne 0x4a3764
mov dword [ebp + 0x14], 0
cmp dword [edi + 0x24], 0
jne 0x4a3df4
mov ecx, dword [ebp + 0xc]
call fcn.004a35e0
test eax, eax
je 0x4a3df4
mov edx, dword [eax]
mov eax, dword [eax + 0x1c]
mov esi, dword [eax + 0x18]
mov ecx, dword [ebp + 8]
mov edi, dword [esi + 0x48]
mov ecx, dword [ecx]
mov dword [esp + 0x24], edx
mov edx, dword [edx]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
mov eax, 0xfff0bdc0
test edi, edi
je 0x4a37c4
mov edx, dword [ecx + 0x14]
xor eax, eax
test edx, edx
jle 0x4a37c4
mov ecx, dword [ecx + 0x10]
add ecx, 0xc
cmp dword [ecx], edi
je 0x4a37c4
inc eax
add ecx, 0x10
cmp eax, edx
jl 0x4a37b8
movsx edi, ax
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 0x78]
mov dword [esp + 0x38], edi
test ebx, ebx
jne 0x4a37d7
mov ebx, eax
mov eax, dword [ebx + 0x5c]
mov edx, 1
mov ecx, edi
shl edx, cl
test edx, eax
jne 0x4a37f6
or eax, edx
mov dword [ebx + 0x5c], eax
cmp edi, 1
jne 0x4a37f6
call fcn.004b1f90
mov ecx, dword [esi]
mov edx, dword [esi + 0x1c]
mov eax, dword [ebp + 8]
push ecx
push 0
push edx
push edi
call fcn.004abca0
mov eax, dword [esp + 0x24]
add esp, 0x10
cmp eax, 1
jne 0x4a38d3
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 8]
cmp word [edx + 0x20], 0
jge 0x4a38d3
mov ebx, dword [esp + 0x30]
push 0
push 0
push 0
push 0x14
push ebx
call fcn.0048e3e0
mov ecx, dword [ebp + 8]
add esp, 0x14
mov esi, eax
mov eax, dword [esp + 0x20]
push 0x68
push edi
push eax
mov eax, dword [esp + 0x1c]
call fcn.004b9d60
mov ecx, dword [ebx + 0x88]
add esp, 0xc
mov dword [esp + 0x1c], 1
mov eax, esi
test esi, esi
jns 0x4a386f
lea eax, [ecx - 1]
mov edx, dword [ebx]
cmp byte [edx + 0x45], 0
je 0x4a387e
mov eax, 0x573b6c
jmp 0x4a3887
mov edx, dword [ebx + 0x58]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov ebx, dword [esp + 0x1c]
mov dword [eax + 8], ecx
mov edi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x20]
mov dword [edi + 0x1c], ecx
mov edx, dword [ebp + 0x18]
test edx, edx
je 0x4a3ed8
cmp ebx, 3
je 0x4a3ed8
cmp ebx, 4
je 0x4a3ed8
mov edi, dword [edi + 0xc]
mov al, byte [edi]
cmp al, 0x9d
jne 0x4a38c1
mov al, byte [edi + 0x26]
cmp al, 0x9e
jne 0x4a3eb8
mov eax, dword [edi + 0x14]
mov ecx, dword [eax]
jmp 0x4a3eca
xor edi, edi
mov dword [esp + 0x18], 1
test eax, eax
jle 0x4a39b2
xor esi, esi
cmp dword [esp + 0x18], 0
je 0x4a3df4
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0xc]
mov bl, byte [eax]
mov cl, bl
cmp cl, 0x9d
jne 0x4a3904
mov cl, byte [eax + 0x26]
cmp cl, 0x9e
jne 0x4a3910
mov ecx, dword [eax + 0x14]
mov edx, dword [ecx]
jmp 0x4a391c
cmp cl, 0x77
jne 0x4a3938
mov ecx, dword [eax + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx]
cmp edx, 1
jle 0x4a3938
cmp bl, 0x77
je 0x4a3932
cmp byte [eax + 0x26], 0x77
je 0x4a3932
mov eax, dword [ecx + esi + 8]
jmp 0x4a3938
mov eax, dword [ecx]
mov eax, dword [eax + esi + 8]
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + esi + 8]
movsx ecx, word [edx + 0x20]
test ecx, ecx
js 0x4a3958
mov edx, dword [esp + 0x10]
mov edx, dword [edx + 4]
shl ecx, 4
mov bl, byte [ecx + edx + 0xd]
jmp 0x4a395a
mov bl, 0x44
call fcn.004a0cd0
test al, al
je 0x4a3978
test bl, bl
je 0x4a3980
cmp al, 0x43
jge 0x4a3974
cmp bl, 0x43
jge 0x4a3974
mov al, 0x41
jmp 0x4a3982
mov al, 0x43
jmp 0x4a3982
test bl, bl
jne 0x4a3980
mov al, 0x41
jmp 0x4a3982
add al, bl
movsx eax, al
sub eax, 0x41
je 0x4a3999
dec eax
je 0x4a3999
xor eax, eax
cmp bl, 0x43
setge al
mov dword [esp + 0x18], eax
inc edi
add esi, 0x18
cmp edi, dword [esp + 0x14]
jl 0x4a38e7
cmp dword [esp + 0x18], 0
je 0x4a3df4
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 8]
xor edi, edi
mov dword [esp + 0x10], edx
cmp edx, edi
je 0x4a3df4
jmp 0x4a39d0
mov ebx, dword [esp + 0x1c]
cmp ebx, edi
jne 0x4a388e
movzx eax, word [edx + 0x34]
mov esi, dword [esp + 0x14]
mov ecx, eax
cmp ecx, esi
jl 0x4a3dd3
cmp eax, 0x3f
jae 0x4a3dd3
cmp dword [esp + 0x3c], edi
je 0x4a3a17
movzx eax, word [edx + 0x32]
cmp eax, esi
jg 0x4a3dd3
cmp ecx, esi
jle 0x4a3a17
cmp byte [edx + 0x36], 0
je 0x4a3dd3
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x2c], edi
cmp esi, edi
jle 0x4a3ba0
xor esi, esi
mov dword [esp + 0x34], esi
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0xc]
mov bl, byte [eax]
mov cl, bl
mov edi, 0x100
cmp cl, 0x9d
jne 0x4a3a48
mov cl, byte [eax + 0x26]
cmp cl, 0x9e
jne 0x4a3a54
mov ecx, dword [eax + 0x14]
mov edx, dword [ecx]
jmp 0x4a3a60
cmp cl, 0x77
jne 0x4a3a7c
mov ecx, dword [eax + 0x14]
mov edx, dword [ecx]
mov edx, dword [edx]
cmp edx, 1
jle 0x4a3a7c
cmp bl, 0x77
je 0x4a3a76
cmp byte [eax + 0x26], 0x77
je 0x4a3a76
mov eax, dword [ecx + esi + 8]
jmp 0x4a3a7c
mov eax, dword [ecx]
mov eax, dword [esi + eax + 8]
mov ecx, dword [esp + 0x24]
mov esi, dword [ecx + esi + 8]
test dword [eax + 4], edi
je 0x4a3a8f
mov edx, dword [ebp + 8]
push edx
jmp 0x4a3ab5
test esi, esi
je 0x4a3a9e
test dword [esi + 4], edi
je 0x4a3a9e
mov eax, dword [ebp + 8]
push eax
jmp 0x4a3ab3
mov edi, dword [ebp + 8]
push edi
call fcn.004a0ec0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
jne 0x4a3ac1
push edi
mov eax, esi
call fcn.004a0ec0
add esp, 4
mov dword [esp + 0x18], eax
movzx ecx, word [esi + 0x20]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x40], ecx
mov ecx, dword [edx + 4]
xor ebx, ebx
mov dword [esp + 0x28], ecx
mov dx, word [esp + 0x40]
mov ecx, dword [esp + 0x28]
cmp word [ecx], dx
jne 0x4a3b3c
test eax, eax
je 0x4a3b48
mov edx, dword [eax]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x20]
mov esi, dword [ecx + ebx*4]
movzx ecx, byte [esi]
movzx edi, byte [ecx + 0x53b6b0]
mov al, byte [edx]
movzx ecx, al
movzx ecx, byte [ecx + 0x53b6b0]
sub ecx, edi
jne 0x4a3b38
sub esi, edx
test al, al
je 0x4a3b34
movzx ecx, byte [esi + edx + 1]
movzx edi, byte [ecx + 0x53b6b0]
mov al, byte [edx + 1]
inc edx
movzx ecx, al
movzx ecx, byte [ecx + 0x53b6b0]
sub ecx, edi
je 0x4a3b10
jmp 0x4a3b38
test ecx, ecx
je 0x4a3b48
mov eax, dword [esp + 0x18]
add dword [esp + 0x28], 2
inc ebx
cmp ebx, dword [esp + 0x14]
jl 0x4a3ad6
mov edi, dword [esp + 0x14]
cmp ebx, edi
je 0x4a3ba0
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.0050f790
mov ecx, eax
and ecx, dword [esp + 0x48]
mov esi, edx
and esi, dword [esp + 0x4c]
or ecx, esi
jne 0x4a3ba0
or dword [esp + 0x48], eax
mov eax, dword [ebp + 0x18]
or dword [esp + 0x4c], edx
test eax, eax
je 0x4a3b84
mov edx, dword [esp + 0x2c]
mov dword [eax + edx*4], ebx
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x34]
inc eax
add esi, 0x18
mov dword [esp + 0x2c], eax
mov dword [esp + 0x34], esi
cmp eax, edi
jl 0x4a3a31
mov ecx, dword [esp + 0x14]
mov eax, 1
xor edx, edx
call fcn.0050f790
add eax, 0xffffffff
adc edx, 0xffffffff
cmp dword [esp + 0x48], eax
jne 0x4a3dd3
cmp dword [esp + 0x4c], edx
jne 0x4a3dd3
mov edi, dword [esp + 0x30]
mov ecx, dword [edi + 0x88]
mov eax, dword [edi + 0xc]
xor ebx, ebx
cmp dword [eax + 0x30], ecx
jg 0x4a3bf3
push ebx
push ebx
push ebx
push 0x14
mov eax, edi
call fcn.0048e3a0
add esp, 0x10
mov dword [esp + 0x34], eax
jmp 0x4a3c1b
lea edx, [ecx + 1]
mov dword [edi + 0x88], edx
mov edx, dword [edi + 0x58]
lea eax, [ecx + ecx*4]
lea eax, [edx + eax*4]
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov dword [eax], 0x14
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov edx, dword [esp + 0x44]
push ecx
push str.USING_INDEX__s_FOR_IN_OPERATOR
push edx
call fcn.004715d0
mov ecx, dword [edi + 0x88]
mov esi, eax
mov eax, dword [edi + 0xc]
add esp, 0xc
cmp dword [eax + 0x30], ecx
jg 0x4a3c58
push ebx
push ebx
push ebx
push 0xa7
mov eax, edi
call fcn.0048e3a0
add esp, 0x10
jmp 0x4a3c7e
lea edx, [ecx + 1]
mov dword [edi + 0x88], edx
mov edx, dword [edi + 0x58]
lea eax, [ecx + ecx*4]
lea eax, [edx + eax*4]
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov dword [eax], 0xa7
mov eax, ecx
mov ecx, dword [edi]
cmp byte [ecx + 0x45], 0
je 0x4a3c94
mov eax, esi
mov edx, 0xfffffff9
call fcn.0048ed10
jmp 0x4a3ccb
cmp eax, ebx
jge 0x4a3c9f
mov eax, dword [edi + 0x88]
dec eax
mov ecx, dword [edi + 0x58]
lea eax, [eax + eax*4]
cmp byte [ecx + eax*4 + 1], 0
lea ecx, [ecx + eax*4]
je 0x4a3cc0
push esi
push edi
mov eax, 0xfffffff9
call fcn.0048ee80
add esp, 8
jmp 0x4a3ccb
cmp esi, ebx
je 0x4a3ccb
mov dword [ecx + 0x10], esi
mov byte [ecx + 1], 0xf9
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x2c]
mov eax, dword [edi + 0x88]
mov edx, dword [edi + 0xc]
cmp dword [edx + 0x30], eax
jg 0x4a3cf9
mov eax, dword [esp + 0x38]
push eax
push ecx
mov ecx, dword [esp + 0x28]
push ecx
push 0x68
mov eax, edi
call fcn.0048e3a0
add esp, 0x10
jmp 0x4a3d2a
lea edx, [eax + 1]
mov dword [edi + 0x88], edx
mov edx, dword [edi + 0x58]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
xor edx, edx
mov word [eax + 2], dx
mov edx, dword [esp + 0x20]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x38]
mov dword [eax + 4], edx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ebx
mov word [eax], 0x68
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 8]
mov esi, dword [eax + 8]
push edx
push eax
call fcn.004b2990
add esp, 8
cmp eax, ebx
je 0x4a3d6d
mov ecx, dword [esi]
cmp byte [ecx + 0x45], 0
je 0x4a3d56
mov edx, 0xfffffff7
call fcn.0048ed10
jmp 0x4a3d6d
mov ecx, dword [esi + 0x88]
mov edx, dword [esi + 0x58]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4 - 0x14]
mov byte [ecx + 1], 0xf7
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x1c]
movzx eax, byte [ecx]
mov ecx, dword [ebp + 0x14]
add eax, 3
mov dword [esp + 0x1c], eax
cmp ecx, ebx
je 0x4a3da7
mov edx, dword [ebp + 8]
mov ebx, dword [edx + 0x2c]
inc ebx
cmp dword [esp + 0x14], 1
mov dword [edx + 0x2c], ebx
mov dword [ecx], ebx
jne 0x4a3da7
mov edx, dword [esp + 0x20]
push edx
mov esi, edi
call fcn.004a3650
add esp, 4
mov eax, dword [esp + 0x34]
mov ecx, dword [edi + 0x88]
test eax, eax
jns 0x4a3db8
lea eax, [ecx - 1]
mov edx, dword [edi]
cmp byte [edx + 0x45], 0
je 0x4a3dc7
mov eax, 0x573b6c
jmp 0x4a3dd0
mov edx, dword [edi + 0x58]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x14]
xor edi, edi
mov dword [esp + 0x10], edx
cmp edx, edi
jne 0x4a39d0
mov ebx, dword [esp + 0x1c]
cmp ebx, edi
jne 0x4a388e
test byte [ebp + 0x10], 1
mov edi, dword [ebp + 0xc]
je 0x4a3e51
test dword [edi + 4], 0x800
jne 0x4a3e51
mov esi, dword [edi + 0xc]
xor eax, eax
lea ecx, [esp + 0x54]
push edi
push ecx
mov dword [edi + 0xc], eax
mov byte [esp + 0x70], 1
mov dword [esp + 0x60], fcn.004a3110
mov dword [esp + 0x64], 0x4a3220
mov dword [esp + 0x74], eax
call fcn.0049ec60
add esp, 8
cmp byte [esp + 0x68], 0
mov dword [edi + 0xc], esi
je 0x4a3e47
mov edx, dword [edi + 0x14]
cmp dword [edx], 2
jg 0x4a3e51
mov ebx, 5
jmp 0x4a3891
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x84]
mov dword [esp + 0x44], eax
xor eax, eax
test byte [ebp + 0x10], 4
lea ebx, [eax + 2]
je 0x4a3e86
mov dword [esi + 0x84], eax
mov ecx, dword [edi + 0xc]
cmp word [ecx + 0x20], ax
jge 0x4a3e95
test dword [edi + 4], 0x800
jne 0x4a3e95
lea ebx, [eax + 1]
jmp 0x4a3e95
mov ecx, dword [ebp + 0x14]
cmp ecx, eax
je 0x4a3e95
inc dword [esi + 0x2c]
mov eax, dword [esi + 0x2c]
mov dword [ecx], eax
xor edx, edx
cmp ebx, 1
sete dl
push edx
push eax
push edi
push esi
call fcn.004a40a0
mov eax, dword [esp + 0x54]
add esp, 0x10
mov dword [esi + 0x84], eax
jmp 0x4a3898
cmp al, 0x77
jne 0x4a3ec5
mov ecx, dword [edi + 0x14]
mov eax, dword [ecx]
mov ecx, dword [eax]
jmp 0x4a3eca
mov ecx, 1
xor eax, eax
test ecx, ecx
jle 0x4a3ed8
mov dword [edx + eax*4], eax
inc eax
cmp eax, ecx
jl 0x4a3ed0
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret