Function at 0x10054790
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x498
mov eax, dword [ebp + 0x14]
push ebx
lea edx, [eax + 0x10b6]
push esi
mov ecx, eax
push edi
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x8c], edx
cmp eax, edx
ja 0x10054c33
mov ebx, dword [ebp + 8]
mov edi, dword [ebp - 0x24]
mov edi, edi
mov esi, dword [ebp + 0x20]
mov edx, dword [ebp - 0x20]
cmp ecx, 0x17d5
ja 0x10054af8
je 0x10054ac6
cmp ecx, 0x1123
ja 0x10054945
je 0x10054920
cmp ecx, 0x102b
ja 0x1005487f
je 0x10054840
mov eax, ecx
sub eax, 0xf71
je 0x10054832
sub eax, 0x3e
je 0x10054820
sub eax, 0x3e
jne 0x1005528e
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x44]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x50], ecx
jmp 0x1005528e
mov edx, dword [esi + 8]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x34], 3
jmp 0x1005528e
mov eax, dword [esi + 0xa4]
mov dword [ebp - 0xc], eax
jmp 0x1005528e
mov dl, 0x6c
pxor mm0, qword [ebx + ecx*4 + 0x908e]
add byte [ebx - 0x6d9713ab], cl
and al, byte [eax]
add byte [ebp + 0x4d898845], cl
nop
push eax
lea ecx, [ebp - 0x70]
push ecx
push 0
mov dword [ebp - 0x78], edx
call fcn.10051050
add esp, 0x10
cmp eax, 0xa
jg 0x1005528e
mov eax, dword [ebp + 0x1c]
or dword [eax], 8
jmp 0x1005528e
mov eax, ecx
sub eax, 0x1069
je 0x100548c9
sub eax, 0x3e
je 0x100548ab
sub eax, 0x3e
jne 0x1005528e
mov dl, ah
adc dword [ecx + 0x1c558b88], edx
mov al, byte [edx]
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0xd], al
jmp 0x1005528e
cmp edx, 0xffffff
jb 0x100548bb
mov edx, 0xffffff
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0xc]
shr edx, 0x10
mov byte [eax + 0xc], dl
jmp 0x1005528e
mov edx, dword [ebp - 0xc]
mov ecx, dword [esi]
push edx
lea eax, [ebp - 0x48]
push 0x50e4
push eax
mov dword [ebp - 0x48], ecx
call fcn.100446b0
mov esi, dword [ebp - 0xc]
mov ecx, dword [ebx]
lea edx, [esi + 4]
push edx
lea eax, [ebp - 0x88]
push 0x50e4
push eax
mov dword [ebp - 0x88], ecx
call fcn.100446b0
mov ecx, dword [ebp - 0x50]
add esi, 8
push esi
lea edx, [ebp - 0x3c]
push 0x50e4
push edx
mov dword [ebp - 0x3c], ecx
call fcn.100446b0
add esp, 0x24
jmp 0x1005528e
mov ecx, dword [ebp - 0xc]
push 0x4fc2
movzx eax, dx
add ecx, 0xe
push ecx
lea edx, [ebp - 0x58]
push edx
push 0
mov dword [ebp - 0x58], eax
call fcn.10053e90
add esp, 0x10
jmp 0x1005528e
cmp ecx, 0x121b
ja 0x10054a5a
je 0x10054a4f
mov eax, ecx
sub eax, 0x1161
je 0x10054a05
sub eax, 0x3e
je 0x10054994
sub eax, 0x3e
jne 0x1005528e
dec ecx
xor dword [0x8689c851], ebp
in al, 0
add byte [eax], al
mov eax, dword [ebp + 0x18]
cmp dword [eax], 0
jle 0x1005528e
mov ecx, dword [ebp - 0x14]
mov dword [esi + 0x20], ecx
jmp 0x1005528e
aad 0xee
outsd dx, dword [esi]
dec esp
stosd dword es:[edi], eax
mov edx, dword [ebp + 0x10]
test edx, edx
je 0x100549ce
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax]
test ecx, ecx
jle 0x100549ce
mov eax, dword [ebp - 0xc]
add eax, 0x18
cmp eax, edx
je 0x100549ce
push 0
mov dword [ebp - 0x98], ecx
push 0x22
lea ecx, [ebp - 0x98]
push ecx
push eax
push edx
call fcn.1006af70
add esp, 0x14
mov eax, dword [esi + 0x100]
test eax, eax
je 0x100549f5
mov ecx, dword [esi + 0xe8]
mov edx, dword [ebp + 0x18]
push ecx
mov ecx, dword [edx]
mov edx, dword [ebp - 0xc]
push esi
add ecx, 0x18
push ecx
push edx
call eax
add esp, 0x10
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
test eax, eax
jne 0x10054c36
jmp 0x1005528e
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x14]
add ecx, 0x10
push ecx
lea edx, [ebp - 0x60]
push 0x50e4
push edx
mov dword [ebp - 0x60], eax
call fcn.100446b0
mov ecx, dword [ebp - 0xc]
mov eax, dword [esi + 0x88]
add ecx, 0x14
push ecx
lea edx, [ebp - 0x80]
push 0x50e4
push edx
mov dword [ebp - 0x80], eax
call fcn.100446b0
mov eax, dword [esi + 0x44]
add esp, 0x18
mov dword [esi + 0x8c], eax
jmp 0x1005528e
mov ecx, dword [ebp - 0x14]
mov dword [esi + 0xc], ecx
jmp 0x1005528e
mov eax, ecx
sub eax, 0x1259
je 0x10054a71
sub eax, 0x3e
je 0x100552f4
jmp 0x1005528e
push edi
call 0x96fbb4dd
hlt
mov ecx, dword [ebx]
push 0
push 0x1ae4
lea edx, [ebp - 0x68]
push edx
push esi
push 0
mov dword [ebp - 0x68], ecx
call fcn.10063d80
add esp, 0x14
mov dword [ebp - 0x2c], eax
test eax, eax
jne 0x1005528e
pop edi
pop esi
mov eax, 0xffffff9c
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, 0x43fb
ja 0x1005511c
je 0x10054e03
mov eax, dword [ebp - 0x18]
cmp eax, 0x18cd
ja 0x10054c74
je 0x10054c33
sub eax, 0x1813
je 0x10054bd2
sub eax, 0x3e
je 0x10054b42
sub eax, 0x3e
jne 0x1005528e
mov eax, dword [ebp - 0x44]
mov dword [ebp - 8], eax
jmp 0x1005528e
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax]
mov esi, dword [ebp - 0x2c]
push 0x7533
mov dword [ebp - 0x90], edx
mov edx, dword [ebp + 0x10]
push edx
push esi
lea eax, [ebp - 0x90]
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp + 0x1c]
push eax
push ecx
lea edx, [ebp - 0x40]
push edx
call fcn.10010730
add esp, 0x18
cmp dword [esi + 0xa0], 0
mov dword [ebp - 0x44], eax
jbe 0x1005528e
cmp dword [esi + 4], 0
jl 0x1005528e
test byte [esi + 0x1c], 2
jne 0x1005528e
mov eax, dword [ebp + 0x20]
push eax
push esi
lea ecx, [ebp - 0x4c]
push ecx
push 0
lea edx, [ebp - 0x54]
push edx
push 0
push 0
push 0
push 0x12ae
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x54], 2
call fcn.1006a6a0
add esp, 0x24
jmp 0x1005528e
mov esi, dword [ebp - 0x2c]
mov eax, dword [esi + 0x3c]
test eax, eax
jle 0x1005528e
cmp dword [esi + 0xa0], eax
jbe 0x1005528e
test byte [esi + 0x28], 2
jne 0x10054c11
lea eax, [ebp - 0x5c]
push eax
push esi
push 0x4b49
push 0
push 0
push 0
mov dword [ebp - 0x5c], 2
call fcn.100392c0
add esp, 0x18
mov ecx, dword [esi + 0xa0]
cmp ecx, dword [esi + 0x3c]
jbe 0x1005528e
mov esi, 0x7590
mov eax, esi
sub eax, 0x7590
je 0x10054c3d
sub eax, 0x5e
jne 0x10054c64
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp - 0x2c]
push edx
push 0x1207
push eax
lea ecx, [ebp - 0x64]
push ecx
mov dword [ebp - 0x64], 0x7d7
call fcn.10027490
add esp, 0x10
mov dword [ebp - 8], 0xffffff38
add esi, 0x5e
cmp esi, 0x75ee
jbe 0x10054c25
jmp 0x1005528e
sub eax, 0x4341
je 0x100550d0
sub eax, 0x3e
je 0x1005509c
sub eax, 0x3e
jne 0x1005528e
xor esi, esi
cmp dword [ebp + 0x20], esi
je 0x10054c9d
cmp dword [ebp + 0x1c], esi
jne 0x10054ce7
mov edx, dword [ebp - 0x6c]
mov ecx, 0x7f6
mov eax, ecx
sub eax, 0x7f6
je 0x10054cc3
sub eax, 0x62
je 0x10054cbe
sub eax, 0x62
je 0x10054c33
jmp 0x10054cdc
mov dword [ebp - 8], edx
jmp 0x10054cdc
movsb byte es:[edi], byte [esi]
outsd dx, dword [esi]
movsb byte es:[edi], byte [esi]
int 0x21
mov eax, dword [ebx]
add eax, 7
cdq
and edx, 3
add eax, edx
sar eax, 2
lea edx, [eax + eax*2]
mov dword [ebp - 0x6c], edx
add ecx, 0x62
cmp ecx, 0x8ba
jbe 0x10054ca5
cmp dword [0x1007d9a0], 0xff
jne 0x10054d7d
mov eax, 1
lea edx, [eax + 0x57]
nop
lea ecx, [eax - 0x41]
cmp ecx, 0x19
ja 0x10054d11
mov dword [eax*4 + 0x1007d9a0], ecx
jmp 0x10054d6f
lea ecx, [eax - 0x61]
cmp ecx, 0x19
ja 0x10054d25
lea ecx, [eax - 0x47]
mov dword [eax*4 + 0x1007d9a0], ecx
jmp 0x10054d6f
lea ecx, [eax - 0x30]
cmp ecx, 9
ja 0x10054d39
lea ecx, [eax + 4]
mov dword [eax*4 + 0x1007d9a0], ecx
jmp 0x10054d6f
cmp eax, 0x2b
jne 0x10054d4a
mov dword [0x1007da4c], 0x3e
jmp 0x10054d6f
cmp eax, 0x2f
jne 0x10054d5b
mov dword [0x1007da5c], 0x3f
jmp 0x10054d6f
cmp eax, 0x3d
jne 0x10054d68
mov dword [0x1007da94], esi
jmp 0x10054d6f
mov dword [eax*4 + 0x1007d9a0], edx
inc eax
cmp eax, 0x100
jb 0x10054d00
mov dword [0x1007d9a0], edx
xor esi, esi
mov dword [ebp - 0x1c], esi
cmp dword [ebx], esi
jbe 0x1005528e
lea ebx, [ebx]
mov dword [ebp - 0x10], 0x5db0
jmp 0x10054da0
mov eax, dword [ebp - 0x10]
cmp eax, 0x5e5c
ja 0x1005502b
je 0x10054ed4
add eax, 0xffffa250
cmp eax, 0x81
ja case.0x10054dcb.23985
movzx edx, byte [eax + 0x10055314]
jmp dword [edx*4 + 0x10055300]
xor eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 4], eax
jmp case.0x10054dcb.23985
inc esi
mov ecx, 0x2f89
mov edx, 0x40
lea ebx, [ebx]
mov eax, ecx
sub eax, 0x2f89
je 0x10054e15
dec eax
je 0x10054e34
dec eax
jne 0x10054e39
cmp esi, dword [ebx]
jb 0x10054e39
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], 0x43fb
mov dword [ebp - 8], eax
jmp 0x1005528e
pushfd
call 0x4b98bf72
xor esi, dword [ebx + 0x1b]
mov edi, edi
movzx eax, byte [esi + edi]
cmp dword [eax*4 + 0x1007d9a0], edx
jbe 0x10054e34
inc esi
cmp esi, dword [ebx]
jb 0x10054e20
jmp 0x10054e39
mov ecx, 0x2f8a
inc ecx
cmp ecx, 0x2f8b
jbe 0x10054df0
movzx ecx, byte [esi + edi]
mov edx, dword [ecx*4 + 0x1007d9a0]
add dword [ebp - 4], edx
jmp case.0x10054dcb.23985
mov al, 0x57
imul esp, dword [edx - 0xd], 0x6fc65c1
inc esi
jmp case.0x10054dcb.23985
and ah, bh
add byte [edi + 0x65], dh
mov ecx, 0x1053
mov edx, 0x40
mov eax, ecx
sub eax, 0x1053
je 0x10054eb2
sub eax, 0x62
jne 0x10054e8e
mov ecx, 0x10b5
cmp esi, dword [ebx]
jae 0x10054e03
add ecx, 0x62
cmp ecx, 0x10b5
jbe 0x10054e73
movzx ecx, byte [esi + edi]
mov edx, dword [ecx*4 + 0x1007d9a0]
add edx, dword [ebp - 4]
shl edx, 6
mov dword [ebp - 4], edx
jmp case.0x10054dcb.23985
cmp esi, dword [ebx]
jae 0x10054e8e
jmp 0x10054ec0
movzx eax, byte [esi + edi]
cmp dword [eax*4 + 0x1007d9a0], edx
jbe 0x10054e81
inc esi
cmp esi, dword [ebx]
jb 0x10054ec0
jmp 0x10054e8e
mov ecx, 0x25f0
mov edx, 0x40
mov edi, edi
mov eax, ecx
sub eax, 0x25f0
je 0x10054fa1
sub eax, 0x5b
je 0x10054f01
sub eax, 0x5b
jne 0x10054f0b
cmp esi, dword [ebx]
jae 0x10054e03
jmp 0x10054f0b
retf 0x9649
mov ecx, 0x264b
add ecx, 0x5b
cmp ecx, 0x26a6
jbe 0x10054ee0
cmp byte [esi + edi], 0x3d
je 0x10054ffb
mov edx, 0x7fe6
jmp 0x10054f30
mov eax, edx
sub eax, 0x7fe6
je 0x10054fd6
sub eax, 0xb
jne 0x10054fea
mov eax, 0x2a83
inc esi
cmp eax, eax
jne 0x10054f80
mov ecx, dword [ebx]
cmp esi, ecx
jae 0x10054f73
jmp 0x10054f60
movzx eax, byte [esi + edi]
cmp dword [eax*4 + 0x1007d9a0], 0x40
jbe 0x10054f73
inc esi
cmp esi, ecx
jb 0x10054f60
mov eax, 0x2a83
cmp esi, ecx
jae 0x10054e03
add eax, 0x49
cmp eax, 0x2a83
jbe 0x10054f4e
mov al, byte [esi + edi]
cmp al, 0x3d
je 0x10054fcb
movzx ecx, al
mov eax, dword [ecx*4 + 0x1007d9a0]
add dword [ebp - 4], eax
inc esi
jmp 0x10054fea
sbb byte [eax], bh
pop eax
mov al, byte [0xf333b8b]
sbb dword [ebp - 1], 0xffffffff
dec dword [ebx + 0x4b60fff]
cmp dword ds:[eax*4 + 0x1007d9a0], edx
movzx eax, byte [esi + edi]
cmp dword [eax*4 + 0x1007d9a0], edx
jbe 0x10054f06
inc esi
cmp esi, dword [ebx]
jb 0x10054fb0
jmp 0x10054f0b
mov esi, dword [ebx]
mov dword [ebp - 0x30], 1
jmp 0x10054fea
movzx ecx, byte [esi + edi]
mov eax, dword [ecx*4 + 0x1007d9a0]
add eax, dword [ebp - 4]
shl eax, 6
mov dword [ebp - 4], eax
add edx, 0xb
cmp edx, 0x7ff1
jbe 0x10054f30
jmp case.0x10054dcb.23985
mov ecx, 0x6cc9
mov edx, 2
mov eax, ecx
sub eax, 0x6cc9
je 0x1005501c
sub eax, 0x56
jne 0x1005501e
shl dword [ebp - 4], 6
mov dword [ebp - 0x30], edx
jmp 0x1005501e
mov esi, dword [ebx]
add ecx, 0x56
cmp ecx, 0x6d1f
jbe 0x10055005
jmp case.0x10054dcb.23985
sub eax, 0x5e87
je 0x10055089
sub eax, 0x2b
je 0x10055081
sub eax, 0x2b
jne case.0x10054dcb.23985
mov edi, 3
sub edi, dword [ebp - 0x30]
je 0x1005505d
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x74]
push edi
lea ecx, [ebp + 0x14]
push ecx
push eax
call fcn.1006d940
add esp, 0xc
add dword [ebp - 0x1c], edi
mov edi, dword [ebp - 0x24]
mov eax, dword [ebp - 0x10]
add eax, 0x2b
mov dword [ebp - 0x10], eax
cmp eax, 0x5edd
jbe 0x10054da0
cmp esi, dword [ebx]
jb 0x10054d90
jmp 0x1005528e
mov dl, byte [ebp - 4]
mov byte [ebp + 0x16], dl
jmp case.0x10054dcb.23985
mov eax, dword [ebp - 4]
mov ecx, eax
shr ecx, 0x10
shr eax, 8
mov byte [ebp + 0x14], cl
mov byte [ebp + 0x15], al
jmp case.0x10054dcb.23985
and al, 0x9f
xchg dword [edi - 0x40], esp
mov eax, dword [ebx]
mov edx, dword [ebp + 0x1c]
mov dword [ebp - 0x74], edx
test eax, eax
je 0x100552f4
jns 0x1005528e
mov eax, dword [ebp + 0x20]
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100550c0
sub eax, edx
mov dword [ebx], eax
jmp 0x1005528e
push 0x3fc
lea eax, [ebp - 0x494]
push 0
push eax
mov dword [ebp - 0x498], 0xff
call fcn.1006d860
lea ecx, [ebp - 0x7c]
push ecx
push 0x1007d9a0
lea edx, [ebp - 0x498]
push 0x1e74
push edx
mov dword [ebp - 0x7c], 0x400
call fcn.1006bc50
mov edi, dword [ebp + 0x20]
add esp, 0x1c
mov dword [ebp - 0x24], edi
jmp 0x1005528e
cmp ecx, 0x67e4
ja 0x10055228
je 0x100551ec
mov eax, ecx
sub eax, 0x4439
je 0x10054c33
sub eax, 0x232f
je 0x100551ae
sub eax, 0x3e
jne 0x1005528e
push esi
push 0x1792
call fcn.10003980
add esp, 8
cmp dword [ebx], 0
mov dword [ebp - 0x38], eax
jne 0x1005528e
mov esi, 0x20d
lea ebx, [ebx]
mov eax, esi
sub eax, 0x20d
je 0x10055184
sub eax, 0x42
je 0x10054c33
jmp 0x1005519e
mov ecx, dword [ebp + 0x20]
push 0x4a3
push ecx
push 0
call fcn.10053510
add esp, 0xc
mov dword [ebp - 8], 0
add esi, 0x42
cmp esi, 0x24f
jbe 0x10055170
jmp 0x1005528e
mov edx, dword [0x1007c424]
test edx, edx
jne 0x100551c8
push edx
push edx
push 0x654d
push edx
call fcn.10036a90
add esp, 0x10
test esi, esi
jne 0x1005528e
mov eax, 0x73ec
cmp eax, eax
je 0x100552ad
add eax, 0x3c
cmp eax, 0x73ec
jbe 0x100551d7
jmp 0x1005528e
mov eax, dword [ebx]
mov ecx, dword [ebp - 0x38]
cmp ecx, eax
jb 0x10055207
lea edx, [eax*4]
lea ecx, [ecx + ecx*2]
cmp ecx, edx
jb 0x100552db
push 0
lea edx, [ebp - 0x84]
push edx
push 0x1355
mov dword [ebp - 0x84], eax
call fcn.1001bf30
add esp, 0xc
mov dword [ebp - 0x28], eax
jmp 0x1005528e
mov eax, ecx
sub eax, 0x6822
je 0x10055240
sub eax, 0x3e
jne 0x1005528e
mov eax, dword [ebp - 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x28], 0
jne 0x1005525d
mov eax, 0x2ac4
cmp eax, eax
je 0x100552e4
add eax, 0x48
cmp eax, 0x2ac4
jbe 0x1005524d
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebx]
mov dword [ebp - 0x10], ecx
cmp ecx, eax
jb 0x1005526c
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x28]
push 0
push 0x22
lea eax, [ebp - 0x10]
push eax
push ecx
push esi
call fcn.1006af70
push 0x4a3
push esi
push 0
call fcn.10053510
add esp, 0x20
mov ecx, dword [ebp - 0x18]
add ecx, 0x3e
mov dword [ebp - 0x18], ecx
cmp ecx, dword [ebp - 0x8c]
jbe 0x100547c0
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmc
jnp 0x100552f7
and al, 0x8b
add eax, dword [ebp + 0x6a3c74c0]
add byte [ebp - 0x936b], cl
call dword [edx + 0x68]
push ebp
adc eax, dword [eax]
add byte [ecx - 0x937b], cl
invalid
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x4a3
push esi
push 0
call fcn.10053510
add esp, 0xc
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
rcr byte [ebx - 0x75], 0xe5
pop ebp
ret