Function at 0x4e3800
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x1464
call fcn.004a2a80
mov eax, dword [0x5b16b0]
xor eax, esp
mov dword [esp + 0x1460], eax
mov eax, dword [esp + 0x1470]
push ebx
push ebp
mov ebp, dword [esp + 0x1474]
lea ecx, [esp + 0x1328]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1470]
push esi
push edi
mov edi, dword [ecx + 0x1f20]
mov ecx, dword [esp + 0x149c]
add ecx, 0xffffffff
cmp ecx, dword [esp + 0x1494]
mov ebx, 1
mov dword [esp + 0x24], ebp
mov dword [esp + 0x14], edx
lea esi, [esp + 0x1270]
mov dword [esp + 0x10], ebx
jl 0x4e38c8
jmp 0x4e387b
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1480]
cmp dword [esp + 0x1498], 0
je 0x4e388c
movzx eax, word [eax]
shr eax, 1
jmp 0x4e3898
movzx ebp, byte [edx + ecx]
movzx eax, word [eax + ebp*2]
mov ebp, dword [esp + 0x24]
movzx edx, byte [edx + ecx]
movsx edx, word [ebp + edx*2]
imul edx, eax
add edx, 0x7fff
cmp edx, 0x10000
jae 0x4e38bf
sub ecx, ebx
cmp ecx, dword [esp + 0x1494]
jge 0x4e3870
jmp 0x4e38c8
cmp ecx, dword [esp + 0x1494]
jge 0x4e38e5
mov eax, dword [esp + 0x149c]
lea ecx, [eax + eax]
push ecx
push 0
push ebp
call fcn.004a1c90
add esp, 0xc
xor eax, eax
jmp 0x4e439f
mov dword [esp + 0x20], ecx
lea esp, [esp]
mov edx, dword [esp + 0x14]
movzx eax, byte [edx + ecx]
mov edx, dword [esp + 0x24]
movsx ebp, word [edx + eax*2]
mov eax, ebp
cdq
xor eax, edx
sub eax, edx
mov dword [esp + ecx*4 + 0x158], eax
xor eax, eax
test ebp, ebp
setge al
lea eax, [eax + eax - 1]
mov dword [esp + ecx*4 + 0x58], eax
sub ecx, ebx
cmp ecx, dword [esp + 0x1494]
jge 0x4e38f0
xor ecx, ecx
cmp dword [esp + 0x149c], 0x40
mov eax, 0x40000
mov dword [esp + 0x1288], ecx
mov dword [esp + 0x128c], eax
mov dword [esp + 0x12a0], ecx
mov dword [esp + 0x12a4], eax
mov dword [esp + 0x12b8], ecx
mov dword [esp + 0x12bc], eax
mov dword [esp + 0x12d0], ecx
mov dword [esp + 0x12d4], eax
mov dword [esp + 0x12e8], ecx
mov dword [esp + 0x12ec], eax
mov dword [esp + 0x1300], ecx
mov dword [esp + 0x1304], eax
mov dword [esp + 0x1318], ecx
mov dword [esp + 0x131c], eax
mov dword [esp + 0x1270], ecx
mov dword [esp + 0x1274], ecx
mov dword [esp + 0x1278], ecx
mov word [esp + 0x258], cx
mov word [esp + 0x25a], cx
jne 0x4e3a82
mov edx, dword [esp + 0x148c]
lea ecx, [edi + edi*2]
lea eax, [edx + ecx*2]
movzx edx, word [eax + eax + 0x5838a4]
mov ecx, dword [esp + 0x1478]
add eax, eax
movzx eax, word [eax + 0x5838bc]
lea ebp, [edx + ecx + 0xf54]
mov edx, edi
lea ecx, [eax + ecx + 0xf54]
shl edx, 6
xor eax, eax
sub edx, edi
lea edi, [edx + 0x5838d9]
jmp 0x4e3a10
movzx edx, byte [edi + eax - 1]
movzx edx, byte [edx + ebp]
mov byte [esp + eax + 0x13f0], dl
movzx edx, byte [eax + 0x583958]
movzx edx, byte [edx + ecx]
mov byte [esp + eax + 0x1430], dl
movzx edx, byte [edi + eax]
movzx edx, byte [edx + ebp]
mov byte [esp + eax + 0x13f1], dl
movzx edx, byte [eax + 0x583959]
movzx edx, byte [edx + ecx]
mov byte [esp + eax + 0x1431], dl
movzx edx, byte [edi + eax + 1]
movzx edx, byte [edx + ebp]
mov byte [esp + eax + 0x13f2], dl
movzx edx, byte [eax + 0x58395a]
movzx edx, byte [edx + ecx]
mov byte [esp + eax + 0x1432], dl
add eax, 3
cmp eax, 0x3f
jl 0x4e3a10
jmp 0x4e3b8f
cmp dword [esp + 0x1498], ecx
je 0x4e3af1
cmp dword [esp + 0x148c], 3
jne 0x4e3af1
mov ecx, dword [esp + 0x1478]
lea edi, [edi + edi*2]
movzx eax, word [edi*4 + 0x5838aa]
mov dx, word [eax + ecx + 0xf54]
lea eax, [eax + ecx + 0xf54]
mov al, byte [eax + 2]
mov word [esp + 0x13f0], dx
movzx edx, word [edi*4 + 0x5838c2]
mov byte [esp + 0x13f2], al
lea eax, [edx + ecx + 0xf54]
mov cx, word [eax]
mov dl, byte [eax + 2]
mov word [esp + 0x1430], cx
mov byte [esp + 0x1432], dl
jmp 0x4e3b8f
mov ecx, dword [esp + 0x148c]
lea eax, [edi + edi*2]
mov edi, dword [esp + 0x1478]
lea ecx, [ecx + eax*2]
movzx edx, word [ecx + ecx + 0x5838a4]
lea eax, [edx + edi + 0xf54]
mov edx, dword [eax]
add ecx, ecx
movzx ecx, word [ecx + 0x5838bc]
mov dword [esp + 0x13f0], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x13f4], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x13f8], edx
mov dx, word [eax + 0xc]
mov al, byte [eax + 0xe]
mov word [esp + 0x13fc], dx
mov edx, dword [ecx + edi + 0xf54]
mov byte [esp + 0x13fe], al
lea eax, [ecx + edi + 0xf54]
mov ecx, dword [eax + 4]
mov dword [esp + 0x1430], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x1434], ecx
mov cx, word [eax + 0xc]
mov dword [esp + 0x1438], edx
mov dl, byte [eax + 0xe]
mov word [esp + 0x143c], cx
mov byte [esp + 0x143e], dl
mov eax, dword [esp + 0x148c]
movzx ecx, word [eax*2 + 0x583844]
mov edx, dword [esp + 0x1478]
mov edi, dword [esp + 0x20]
cmp edi, dword [esp + 0x1494]
lea eax, [ecx + edx + 0xf54]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov ax, word [eax + 8]
mov dword [esp + 0x127c], ecx
mov dword [esp + 0x1280], edx
mov word [esp + 0x1284], ax
mov dword [esp + 0x28], edi
jl 0x4e42a8
cmp dword [esp + 0x1498], 0
mov ecx, dword [esp + edi*4 + 0x158]
mov dword [esp + 0x54], ecx
je 0x4e3c03
mov edx, dword [esp + 0x1480]
movzx eax, word [edx]
shr eax, 1
jmp 0x4e3c16
mov eax, dword [esp + 0x14]
movzx edx, byte [eax + edi]
mov eax, dword [esp + 0x1480]
movzx eax, word [eax + edx*2]
imul eax, ecx
add eax, 0x8000
sar eax, 0x10
mov ebp, eax
jne 0x4e3e50
movzx ecx, byte [esp + edi + 0x13f0]
movzx eax, word [ecx*4 + 0x586318]
cdq
mov ecx, eax
mov eax, dword [esp + 0x1490]
mov ebp, edx
cdq
push edx
push eax
push ebp
push ecx
call fcn.004a3f90
mov ecx, dword [esi + 0x18]
shrd eax, edx, 4
shr edx, 4
test ecx, ecx
mov edx, dword [esi + 0x1c]
jne 0x4e3c68
cmp edx, 0x40000
je 0x4e3c97
mov dx, word [esi + 0x20]
mov word [esp + ebx*4 + 0x25a], dx
mov word [esp + ebx*4 + 0x258], 0
mov dword [esi + 0x20], ebx
add ebx, 1
mov edx, eax
xor ebp, ebp
add edx, ecx
adc ebp, dword [esi + 0x1c]
mov dword [esp + 0x10], ebx
mov dword [esi + 0x18], edx
mov dword [esi + 0x1c], ebp
mov ecx, dword [esi + 0x30]
test ecx, ecx
mov edx, dword [esi + 0x34]
jne 0x4e3ca9
cmp edx, 0x40000
je 0x4e3cd8
mov dx, word [esi + 0x38]
mov word [esp + ebx*4 + 0x258], 0
mov word [esp + ebx*4 + 0x25a], dx
mov dword [esi + 0x38], ebx
add ebx, 1
mov edx, eax
xor ebp, ebp
add edx, ecx
adc ebp, dword [esi + 0x34]
mov dword [esp + 0x10], ebx
mov dword [esi + 0x30], edx
mov dword [esi + 0x34], ebp
mov ecx, dword [esi + 0x48]
test ecx, ecx
mov edx, dword [esi + 0x4c]
jne 0x4e3cea
cmp edx, 0x40000
je 0x4e3d19
mov dx, word [esi + 0x50]
mov word [esp + ebx*4 + 0x258], 0
mov word [esp + ebx*4 + 0x25a], dx
mov dword [esi + 0x50], ebx
add ebx, 1
mov edx, eax
xor ebp, ebp
add edx, ecx
adc ebp, dword [esi + 0x4c]
mov dword [esp + 0x10], ebx
mov dword [esi + 0x48], edx
mov dword [esi + 0x4c], ebp
mov ecx, dword [esi + 0x60]
test ecx, ecx
mov edx, dword [esi + 0x64]
jne 0x4e3d2b
cmp edx, 0x40000
je 0x4e3d5a
mov dx, word [esi + 0x68]
mov word [esp + ebx*4 + 0x258], 0
mov word [esp + ebx*4 + 0x25a], dx
mov dword [esi + 0x68], ebx
add ebx, 1
mov edx, eax
xor ebp, ebp
add edx, ecx
adc ebp, dword [esi + 0x64]
mov dword [esp + 0x10], ebx
mov dword [esi + 0x60], edx
mov dword [esi + 0x64], ebp
mov ecx, dword [esi + 0x78]
test ecx, ecx
mov edx, dword [esi + 0x7c]
jne 0x4e3d6c
cmp edx, 0x40000
je 0x4e3da1
mov dx, word [esi + 0x80]
mov word [esp + ebx*4 + 0x258], 0
mov word [esp + ebx*4 + 0x25a], dx
mov dword [esi + 0x80], ebx
add ebx, 1
mov edx, eax
xor ebp, ebp
add edx, ecx
adc ebp, dword [esi + 0x7c]
mov dword [esp + 0x10], ebx
mov dword [esi + 0x78], edx
mov dword [esi + 0x7c], ebp
mov ecx, dword [esi + 0x90]
test ecx, ecx
mov edx, dword [esi + 0x94]
jne 0x4e3db9
cmp edx, 0x40000
je 0x4e3df7
mov dx, word [esi + 0x98]
mov word [esp + ebx*4 + 0x258], 0
mov word [esp + ebx*4 + 0x25a], dx
mov dword [esi + 0x98], ebx
add ebx, 1
mov edx, eax
xor ebp, ebp
add edx, ecx
adc ebp, dword [esi + 0x94]
mov dword [esp + 0x10], ebx
mov dword [esi + 0x90], edx
mov dword [esi + 0x94], ebp
mov ecx, dword [esi + 0xa8]
test ecx, ecx
mov edx, dword [esi + 0xac]
jne 0x4e3e13
cmp edx, 0x40000
je 0x4e4294
mov bp, word [esi + 0xb0]
mov word [esp + ebx*4 + 0x258], 0
mov word [esp + ebx*4 + 0x25a], bp
mov dword [esi + 0xb0], ebx
add ebx, 1
xor ebp, ebp
add eax, ecx
adc ebp, edx
mov dword [esp + 0x10], ebx
mov dword [esi + 0xa8], eax
mov dword [esi + 0xac], ebp
jmp 0x4e4294
mov eax, esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x48], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x20], esi
mov eax, esi
mov ecx, 8
mov edx, 0x40000
mov edi, edi
mov dword [eax], 0
mov dword [eax + 4], edx
add eax, 0x18
sub ecx, 1
jne 0x4e3e70
mov eax, dword [esp + 0x149c]
add eax, 0xffffffff
cmp edi, eax
jge 0x4e3ed7
movzx eax, byte [esp + edi + 0x13f0]
add eax, eax
movzx ecx, word [eax + eax + 0x586318]
movzx edx, word [eax + eax + 0x58631a]
add eax, eax
movzx eax, byte [esp + edi + 0x1430]
add eax, eax
add eax, eax
mov dword [esp + 0x40], ecx
movzx ecx, word [eax + 0x586318]
mov dword [esp + 0x44], edx
movzx edx, word [eax + 0x58631a]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
jmp 0x4e3ee9
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], eax
lea eax, [ebp - 1]
cmp ebp, eax
mov ecx, ebp
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x4c], eax
jl 0x4e4294
mov eax, dword [esp + 0x1478]
mov ebx, dword [eax + 0x1f1c]
mov dword [esp + 0x50], ebx
jmp 0x4e3f15
mov ebx, dword [esp + 0x50]
mov edx, dword [esp + 0x1498]
test edx, edx
mov eax, dword [esp + 0x1484]
mov ebp, dword [esp + 0x14a0]
je 0x4e3f34
mov eax, dword [eax]
add eax, eax
jmp 0x4e3f3f
mov esi, dword [esp + 0x14]
movzx esi, byte [esi + edi]
mov eax, dword [eax + esi*4]
mov esi, dword [esp + 0x54]
imul eax, ecx
add eax, 0x80
sar eax, 8
mov ecx, esi
sub ecx, eax
test ebx, ebx
je 0x4e402a
test edi, edi
je 0x4e402a
test edx, edx
jne 0x4e402e
cmp dword [esp + 0x148c], 4
je 0x4e4035
cmp dword [esp + 0x149c], 0x40
mov edx, dword [esp + 0x1478]
jne 0x4e3f98
shl ebp, 6
add ebp, edi
movsx edx, word [edx + ebp*2 + 0x2bb0]
jmp 0x4e3fa5
shl ebp, 4
add ebp, edi
movsx edx, word [edx + ebp*2 + 0x2db0]
sub eax, esi
imul eax, dword [esp + edi*4 + 0x58]
add eax, edx
cdq
mov esi, eax
xor esi, edx
sub esi, edx
imul esi, ebx
cmp dword [esp + 0x149c], 0x40
jne 0x4e3fd8
mov eax, dword [esp + 0x14]
movzx edx, byte [eax + edi]
movzx eax, word [edx*2 + 0x583028]
mov dword [esp + 0x18], eax
jmp 0x4e3fec
mov edx, dword [esp + 0x14]
movzx eax, byte [edx + edi]
movzx edx, word [eax*2 + 0x5830a8]
mov dword [esp + 0x18], edx
mov eax, ecx
cdq
mov ebx, eax
mov eax, dword [esp + 0x1488]
mov eax, dword [eax + edi*4]
mov ebp, edx
push ebp
cdq
push ebx
push edx
push eax
call fcn.004a3f90
push ebp
push ebx
push edx
push eax
call fcn.004a3f90
mov ecx, eax
mov eax, dword [esp + 0x18]
imul eax, esi
mov ebx, edx
cdq
sub ecx, eax
sbb ebx, edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], ebx
jmp 0x4e4063
test edx, edx
je 0x4e4035
mov edi, 0x100
jmp 0x4e403f
mov edx, dword [esp + 0x1488]
mov edi, dword [edx + edi*4]
mov eax, ecx
cdq
mov esi, eax
mov ebx, edx
push ebx
mov eax, edi
cdq
push esi
push edx
push eax
call fcn.004a3f90
push ebx
push esi
push edx
push eax
call fcn.004a3f90
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
mov ebp, dword [esp + 0x48]
xor ebx, ebx
lea esp, [esp]
cmp dword [ebp], 0
mov dword [esp + 0x18], ebx
jne 0x4e4087
cmp dword [ebp + 4], 0x40000
je 0x4e4264
mov eax, dword [ebp + 8]
mov edi, dword [ebp]
mov esi, dword [ebp + 4]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x1260], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x126c], eax
mov eax, dword [esp + 0x1c]
test eax, eax
mov dword [esp + 0x1258], edi
mov dword [esp + 0x125c], esi
mov dword [esp + 0x1264], ecx
mov dword [esp + 0x1268], edx
jne 0x4e40d3
test ebx, ebx
je 0x4e41f2
xor ecx, ecx
test eax, eax
setne cl
test eax, eax
mov ecx, dword [esp + ecx*4 + 0x40]
je 0x4e41d5
add eax, 0xffffffff
cmp eax, 0xe
jl 0x4e40f3
mov eax, 0xe
mov esi, dword [ebx*4 + 0x583998]
movzx edi, byte [esp + esi + 0x1264]
xor edx, edx
test eax, eax
setg dl
lea esi, [esp + esi + 0x1264]
lea edi, [edx + edi*2]
mov dl, byte [edi + 0x5861d8]
mov byte [esi], dl
movzx esi, word [edi*2 + 0x586318]
xor edx, edx
test ebx, ebx
sete dl
mov edx, dword [esp + edx*4 + 0x38]
add edx, esi
add ecx, edx
test eax, eax
jle 0x4e41b6
mov esi, dword [ebx*4 + 0x5839b8]
movzx edx, byte [esp + esi + 0x1264]
lea esi, [esp + esi + 0x1264]
shl eax, 7
lea edi, [eax + edx]
movzx eax, word [edi*2 + 0x5b8210]
mov dl, byte [edi + 0x5b79c0]
add ecx, eax
mov eax, dword [esp + 0x1c]
cmp eax, 0xf
mov byte [esi], dl
jl 0x4e41a9
add eax, 0xfffffff1
cmp eax, 0xff
jae 0x4e4194
movzx eax, byte [eax + 0x582dd9]
shl eax, 8
add ecx, eax
movzx eax, byte [ebx + 0x5839e0]
mov dword [esp + 0x18], eax
jmp 0x4e41c7
add eax, 1
shr eax, 8
movzx eax, byte [eax + 0x582dd8]
add eax, 0x10
shl eax, 8
add ecx, eax
movzx eax, byte [ebx + 0x5839e0]
mov dword [esp + 0x18], eax
jmp 0x4e41c7
movzx edx, byte [ebx + 0x5839d8]
add ecx, 0x100
mov dword [esp + 0x18], edx
mov edi, dword [esp + 0x1258]
mov esi, dword [esp + 0x125c]
mov eax, dword [esp + 0x1490]
cdq
push edx
push eax
push 0
push ecx
call fcn.004a3f90
shrd eax, edx, 4
shr edx, 4
add edi, eax
adc esi, edx
add edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
adc esi, dword [esp + 0x30]
lea eax, [eax + eax*2]
cmp esi, dword [ecx + eax*8 + 4]
lea eax, [ecx + eax*8]
jg 0x4e4264
jl 0x4e4214
cmp edi, dword [eax]
jae 0x4e4264
mov edx, dword [esp + 0x10]
movzx ecx, word [esp + 0x1c]
mov word [esp + edx*4 + 0x258], cx
movzx ecx, word [esp + 0x1260]
mov word [esp + edx*4 + 0x25a], cx
mov ecx, edx
add edx, 1
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x1264]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x1268]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x126c]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
add ebx, 1
add ebp, 0x18
cmp ebx, 8
jl 0x4e4070
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x28]
sub ecx, 1
cmp ecx, dword [esp + 0x4c]
mov dword [esp + 0x1c], ecx
jge 0x4e3f11
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
sub edi, 1
cmp edi, dword [esp + 0x1494]
mov dword [esp + 0x28], edi
jge 0x4e3be0
mov edx, dword [esi + 0x1c]
cmp edx, dword [esi + 4]
lea ecx, [esi + 0x18]
mov eax, esi
jg 0x4e42bf
jl 0x4e42bd
mov edx, dword [ecx]
cmp edx, dword [esi]
jae 0x4e42bf
mov eax, ecx
mov edx, dword [ecx + 0x1c]
add ecx, 0x18
cmp edx, dword [eax + 4]
jg 0x4e42d4
jl 0x4e42d2
mov edx, dword [ecx]
cmp edx, dword [eax]
jae 0x4e42d4
mov eax, ecx
mov edx, dword [esi + 0x4c]
cmp edx, dword [eax + 4]
lea ecx, [esi + 0x48]
jg 0x4e42e9
jl 0x4e42e7
mov edx, dword [ecx]
cmp edx, dword [eax]
jae 0x4e42e9
mov eax, ecx
mov edx, dword [esi + 0x64]
cmp edx, dword [eax + 4]
lea ecx, [esi + 0x60]
jg 0x4e42fe
jl 0x4e42fc
mov edx, dword [ecx]
cmp edx, dword [eax]
jae 0x4e42fe
mov eax, ecx
mov edx, dword [esi + 0x7c]
cmp edx, dword [eax + 4]
lea ecx, [esi + 0x78]
jg 0x4e4313
jl 0x4e4311
mov edx, dword [ecx]
cmp edx, dword [eax]
jae 0x4e4313
mov eax, ecx
mov edx, dword [esi + 0x94]
cmp edx, dword [eax + 4]
lea ecx, [esi + 0x90]
jg 0x4e432e
jl 0x4e432c
mov edx, dword [ecx]
cmp edx, dword [eax]
jae 0x4e432e
mov eax, ecx
mov ecx, dword [esi + 0xac]
add esi, 0xa8
cmp ecx, dword [eax + 4]
jg 0x4e4349
jl 0x4e4347
mov edx, dword [esi]
cmp edx, dword [eax]
jae 0x4e4349
mov eax, esi
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x1494]
xor esi, esi
cmp eax, dword [esp + 0x149c]
jge 0x4e4398
mov edi, dword [esp + 0x24]
movzx edx, word [esp + ecx*4 + 0x258]
mov bx, word [esp + eax*4 + 0x58]
mov ebp, dword [esp + 0x14]
imul bx, dx
movzx ebp, byte [eax + ebp]
movzx ecx, word [esp + ecx*4 + 0x25a]
movzx edx, dx
add eax, 1
or esi, edx
cmp eax, dword [esp + 0x149c]
mov word [edi + ebp*2], bx
jl 0x4e4362
xor eax, eax
test esi, esi
setne al
mov ecx, dword [esp + 0x1470]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00499441
add esp, 0x1464
ret