Function at 0x408060
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x11c
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
mov ebx, ecx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x110], ebx
lea eax, [edi + edi]
mov dword [ebp - 0x48], 0
add byte [eax], al
add byte [ecx - 0x11b7b], cl
inc dword [ebx]
ror dword [ecx - 0x1137b], 0xff
mov dword [ebp + 0x10], eax
add eax, 0xfffffffe
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x28], eax
test ebx, ebx
je 0x445b0d
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 0x14]
test esi, 0xe20f5a6f
jne 0x445b48
test ebx, ebx
je 0x445b5a
test ecx, ecx
je 0x445b5a
cmp dword [ebp + 0x18], 0
mov eax, dword [ebp + 0x1c]
je 0x445b52
inc ebp
sbb al, 0xf
test byte [eax], bh
fiadd dword [ebx]
add byte [ebp + 0x42880fc0], al
fiadd dword [ebx]
add byte [ebp + 0x44880fd2], al
fiadd dword [ebx]
add byte [ebp - 0xa77f001], al
jecxz 0x408134
test eax, eax
js 0x445b64
test edx, edx
js 0x445b6e
test edi, edi
js 0x446527
add byte [ebx], bh
cli
cmp edi, edx
jg 0x446527
mov eax, dword [ebx]
cmp eax, 0x50435245
jne 0x445b78
test byte [ebx + 0xc], 2
je 0x445b8c
mov ecx, dword [ebx + 8]
test ecx, 0x800
je 0x445b96
mov eax, 1
mov dword [ebp - 8], eax
mov dword [ebp - 0xb8], eax
test esi, 0x8000000
jne 0x445b9d
test esi, 0x8000
jne 0x445ba7
xor esi, esi
mov dword [ebp - 0x7c], esi
test eax, eax
je 0x40819c
test dword [ebp + 0x14], 0x2000
je 0x445bb1
movzx eax, word [ebx + 0x22]
mov esi, 0x989680
movzx edx, word [ebx + 0x24]
mov dword [ebp - 0xe4], edx
mov dword [ebp - 0x104], esi
lea eax, [ebx + eax*2]
mov dword [ebp - 0x100], 0x1f40
add byte [eax], al
mov dword [ebp - 0xd8], eax
movzx eax, word [ebx + 0x26]
mov dword [ebp - 0xe8], eax
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x5c], eax
mov eax, dword [ebx + 0x30]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x40821e
mov ecx, dword [eax]
test cl, 1
je 0x4081f7
mov eax, dword [eax + 4]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x20]
test cl, 2
jne 0x445c28
test cl, 0x10
jne 0x445c36
test cl, 4
jne 0x445c47
test cl, 8
mov ecx, dword [ebx + 8]
jne 0x445c55
test dword [ebx + 0xc], 0x2000
jne 0x445c60
add byte [edi], cl
test dword [0xf70003da], esi
inc ebx
or al, 0
inc eax
add byte [eax], al
test dword [ebx + 0xc], 0x4000
jne 0x445c76
mov esi, dword [ebp - 0x24]
test esi, esi
jne 0x408244
mov esi, 0x4b0bb0
mov eax, ecx
or eax, dword [ebp + 0x14]
test al, 0x10
jne 0x445c90
mov dword [ebp - 0x24], 0
test dword [ebx + 0xc], 0x100
jne 0x445c9c
mov dword [ebp - 0x30], 0
test ecx, 0x40000
jne 0x445ca8
mov dword [ebp - 0x40], 0
movzx eax, word [ebx + 0x26]
imul edx, eax
movzx eax, word [ebx + 0x22]
mov dword [ebp - 0x70], edi
add edx, eax
lea eax, [ebx + edx*2]
mov edx, dword [ebp + 8]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x90], edx
lea eax, [edx + eax*2]
mov dword [ebp - 4], eax
mov dword [ebp - 0x8c], eax
test cl, 0x20
jne 0x445cb4
xor eax, eax
mov dword [ebp - 0xac], eax
test ecx, 0x20000000
jne 0x445cbe
xor eax, eax
mov dword [ebp - 0xb0], eax
test ecx, 0x2000000
jne 0x445cc8
xor eax, eax
mov edx, dword [ebp + 0x14]
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xdc], 0
test dl, dl
js 0x445cd2
xor eax, eax
mov dword [ebp - 0xc0], eax
test edx, 0x100
jne 0x445cdc
xor eax, eax
mov dword [ebp - 0xbc], eax
test edx, 0x400
jne 0x445ce6
xor eax, eax
mov dword [ebp - 0xa8], eax
test edx, 0x10000000
jne 0x445cf0
xor eax, eax
mov edx, dword [ebx + 0xc]
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x60], 0
test edx, 0x1000
jne 0x445cfa
xor eax, eax
mov dword [ebp - 0x98], eax
lea eax, [esi + 0x100]
mov dword [ebp - 0xc8], eax
lea eax, [esi + 0x340]
mov dword [ebp - 0xcc], esi
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0xc4], eax
mov eax, esi
and eax, 0x1800000
jne 0x445d04
test ecx, 0x1800000
jne 0x445d29
mov dword [ebp - 0x9c], 1
test esi, 0x700000
jne 0x445d3c
and ecx, 0x700000
jne 0x445d43
mov dword [ebp - 0xf0], 2
cmp dword [ebp - 0x7c], 0
jne 0x445dd8
mov eax, 0x55555556
imul dword [ebp + 0x1c]
mov eax, edx
shr eax, 0x1f
add eax, edx
lea esi, [eax + eax*2]
mov eax, 0x55555556
lea ecx, [esi + esi]
mov dword [ebp - 0xc], esi
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x2c], eax
movzx eax, word [ebx + 0x20]
test ax, ax
jne 0x445dee
mov esi, dword [ebp + 0x18]
mov dword [ebp - 0xfc], esi
mov eax, dword [ebp - 0xc]
mov edi, esi
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0x74], 0
lea ecx, [eax + eax]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0xf4], eax
test edi, edi
je 0x40849a
test dword [edi + edi*8], ecx
invalid
mov eax, dword [ebp - 0xc]
lea ecx, [edi + eax*4]
movzx eax, word [ebx + 0x1e]
shl eax, 2
mov edx, ecx
sub edx, eax
add edi, 8
cmp edx, edi
jb 0x445e39
sub ecx, 4
cmp ecx, edx
jae 0x4086e0
mov eax, dword [ebp + 0x1c]
test eax, eax
jle 0x40848e
mov dword [esi], 0xffffffff
mov esi, dword [ebp - 0xfc]
cmp eax, 1
jle 0x40849a
mov dword [esi + 4], 0xffffffff
cmp dword [ebp - 0x24], 0
jne 0x445ea2
mov eax, dword [ebx + 0xc]
test al, 0x10
jne 0x4086f8
cmp dword [ebp - 0x30], 0
jne 0x445ea2
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x445ea2
test byte [eax + 4], 1
mov esi, dword [ebp - 8]
jne 0x4086d2
xor eax, eax
xor edi, edi
mov eax, dword [ebx + 0xc]
test al, 0x40
jne 0x40871f
xor edi, edi
mov ecx, dword [ebp - 0xf0]
mov edx, dword [ebp - 0xec]
mov eax, dword [ebp - 4]
mov esi, dword [ebp + 0x10]
cmp dword [ebp - 0x40], 0
mov edi, eax
jne 0x445f07
mov esi, dword [ebx + 8]
or esi, dword [ebp + 0x14]
and esi, 0x4000000
jne 0x44624f
cmp dword [ebp - 0x3c], esi
jne 0x40869b
add dword [eax], eax
add byte [ecx], bh
jne 0x4084ee
cmp dword [ebp - 0x30], esi
jne 0x446087
mov edx, dword [ebp + 0x10]
cmp dword [ebp - 0x34], esi
jne 0x408658
test esi, esi
jne 0x446285
dec ebp
fld qword [ebx]
invalid
cmp dword [ebp - 0x7c], esi
jne 0x446285
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x40855b
test byte [ecx + 4], 2
je 0x40855b
sub eax, edx
sar eax, 1
cmp eax, dword [ecx + 0x28]
jb 0x4087b5
sub byte [edi], cl
sbb byte [edx + 2], 0
add byte [ebx - 0x10b43], al
inc dword [eax]
cmp dword [ebp - 0x10c], 0
mov edi, dword [ebp - 4]
jne 0x408749
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x108]
push 0
push 0
push eax
push 2
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x80], edx
push edx
mov edx, dword [ebp - 0x94]
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0xe0], 0
call fcn.00408810
mov edx, dword [ebp + 0x10]
add esp, 0x14
cmp dword [ebp - 0xa0], 0
mov esi, eax
jne 0x44628d
test esi, esi
jle 0x4462a8
cmp esi, 1
jne 0x4463ff
cmp dword [ebp - 0x48], 0
mov edi, dword [ebp - 0x2c]
jne 0x446474
test dword [ebp - 0x74], 0x10000
mov esi, dword [ebp - 0x78]
jne 0x4464b9
mov eax, esi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
movzx edi, word [ebx + 0x1e]
mov eax, esi
mov ebx, dword [ebp + 0x18]
cdq
sub eax, edx
sar eax, 1
cmp eax, edi
jle 0x4464c8
cmp dword [ebp + 0x1c], 2
jl 0x446513
mov eax, dword [ebp - 0x88]
sub eax, dword [ebp - 0x90]
sar eax, 1
mov dword [ebx], eax
mov eax, dword [ebp - 0x84]
sub eax, dword [ebp - 0x90]
sar eax, 1
mov dword [ebx + 4], eax
mov edx, dword [ebp - 0x20]
test edx, edx
je 0x40864f
test byte [edx], 0x20
jne 0x44651a
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edx, edi
jae 0x408530
movzx edx, word [edx]
cmp edx, 0xff
ja 0x446242
mov ecx, edx
mov eax, 1
and ecx, 7
shr edx, 3
shl eax, cl
mov ecx, dword [ebp - 0x34]
test byte [edx + ecx], al
mov edx, dword [ebp + 0x10]
jne 0x4086ca
add byte [ebx - 0x153ef81f], al
add edx, ebx
loopne 0x40860a
dec ebp
int3
add edx, 2
mov dword [ebp + 0x10], edx
cmp edx, edi
jb 0x408660
mov eax, dword [ebp - 4]
jmp 0x408530
mov edx, dword [ebp + 0x10]
cmp edx, edi
jae 0x408530
mov edx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x14]
cmp bx, dx
mov ebx, dword [ebp - 0x110]
mov edx, dword [ebp + 0x10]
jne 0x44605c
mov eax, dword [ebp - 0x14]
cmp word [edx], ax
jne 0x4087f6
mov eax, dword [ebp - 4]
jmp 0x408530
add eax, 8
mov dword [ebp - 0x34], eax
jmp 0x4084d1
mov dword [ecx], 0xffffffff
sub ecx, 4
cmp ecx, edx
jae 0x4086e0
mov esi, dword [ebp - 0xfc]
jmp 0x40847b
mov ch, 4
invalid
movzx esi, word [ebx + 0x18]
movzx edi, si
mov dword [ebp - 0x3c], 1
mov dword [ebp - 0x10], esi
movzx ecx, si
mov dword [ebp - 0x14], edi
test al, 0x20
jne 0x445e40
mov esi, dword [ebp - 8]
jmp 0x4084d5
movzx ecx, word [ebx + 0x1a]
mov dword [ebp - 0x18], ecx
mov edi, dword [ebp - 0x18]
movzx edx, di
mov dword [ebp - 0x10c], 1
movzx ecx, cx
mov dword [ebp - 0x1c], edx
test al, al
jns 0x4084e2
jmp 0x445eaa
mov eax, edi
sub eax, edx
and eax, 0xfffffffe
cmp eax, 0x7d0
jge 0x40856b
cmp dword [ebp - 0x3c], 0
je 0x446257
mov eax, 2
add al, byte [eax]
add byte [eax], al
lea ecx, [eax + edx]
cmp ecx, dword [ebp - 0x28]
jbe 0x40856b
cmp ecx, edi
jae 0x4087a4
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
cmp bx, si
mov ebx, dword [ebp - 0x110]
jne 0x44625e
mov edx, dword [ebp - 0x1c]
movzx eax, word [ecx]
mov dword [ebp - 0x28], ecx
add ecx, 2
cmp ax, dx
je 0x4087a8
cmp ecx, edi
jb 0x408792
xor esi, esi
jmp 0x4087ba
cmp dword [ebp - 0x28], edi
jae 0x4087a4
mov edx, dword [ebp + 0x10]
jmp 0x40856b
xor esi, esi
mov edi, dword [ebp - 4]
cmp dword [ebp - 0x48], 0
jne 0x446410
test esi, esi
jne 0x446423
push edi
fadd qword [ebx]
add byte [ebx - 0x11763], cl
inc dword [ebp + 0x59850fdb]
fadd qword [ebx]
add byte [ebx + 0x558bffc8], al
loopne 0x408766
mov ebx, dword [ebp - 0x118]
test ebx, ebx
jne 0x446433
or eax, 0xffffffff
mov edx, dword [ebp - 0x20]
test edx, edx
je 0x408651
ror byte [edi], cl
test byte [ecx - 2], ch
invalid
test byte [edx], 0x20
je 0x408651
jmp 0x446467
add edx, 2
mov dword [ebp + 0x10], edx
cmp edx, edi
jb 0x4086c1
jmp 0x4086ca
add al, 0xc7
test byte [esp + ecx*4], ah
jl 0x445b13
push dword [ebp + 0x34]
jne 0x445b4a
int3
dec edx
add bl, ch
adc eax, edx
and eax, 0xfa3bfffc
jmp 0x445b5f
jne 0x408112
push ecx
push ecx
push ecx
push ecx
push ecx
xor edx, edx
call fcn.00408834
add byte [eax], al
adc al, 0xe9
or dword [ebx], ebp
cld
invalid
mov esi, dword [ebp + 0xb]
jmp 0x85408675
dec byte [esi - 0x3da40]
mov eax, 0xfffffffe
jmp 0x85408675
invalid
invalid
push eax
inc ebx
push edx
inc ebp
in al, 0x89
fimul word [ebx - 0x7ce61fbb]
shl bl, 0xe9
lds ebp, [edx]
cld
sbb dword [ebx - 0x3a161c40], eax
sub bh, ah
test byte [eax - 0x1c], bh
jmp 0x408675
in al, 0xff
invalid
test al, 0x3f
je 0x445c55
add byte [esi + 0x23], ah
sar dword [ecx + 0x4eefdc00], 0x66
cmp eax, ecx
jne 0x445c44
mov eax, 0xfffffff5
jmp 0x85408675
mov ecx, dword [ebx + 8]
jmp 0x4081c0
call dword [eax - 0x168921c5]
retf 0xfc25
jmp 0x408224
cmp ebx, edi
jb 0x445c93
inc ebp
loopne 0x445c50
ret 0xfc25
and eax, 0x408bfffc
adc byte [ecx - 0x411623bb], cl
and eax, 0x438bfffc
adc byte [ebx], bh
invalid
test dword [eax - 0x168921c5], edx
fidiv word [esi - 0x17]
mov ch, 0x25
cld
dec dword [ebx - 0x7ac4ebbd]
fnstcw word [ebx]
fbstp tbyte [edx + 0xf]
adc al, 0x3b
test ecx, ebx
cmp ebx, edi
jb 0x445cb3
xor dword [ebx - 0x760003db], 0xffffff85
fnstcw word [ebx]
fbstp tbyte [edx - 0x17]
dec dword [ecx - 0x20c4267b]
jb 0x445c99
test al, 0x25
add eax, dword [eax]
add bh, al
inc ebp
fdiv st(1), st(0)
add byte [ebp + 0x25bce944], cl
mov dword [ebp - 0x24], 0x448d00f9
jmp 0x47827c
add eax, dword [eax]
mov dword [ebp - 0x30], 0x448d00f9
jmp 0x478290
les esp, [0x45c70003]
push eax
inc edi
call 0xcc2de052
sub ecx, 0xffffffcb
and eax, 0xf9e80003
add byte [ebp + 0x25fde944], cl
add eax, dword [eax]
call 0x44d15de0
inc esp
jmp 0x4782df
inc esp
jmp 0x4782f3
inc esp
jmp 0x478307
inc esp
jmp 0x478324
inc esp
jmp 0x478338
jne 0x445cf0
add byte [esp + 4], 0xa3
add eax, dword es:[eax]
cmp eax, 0x110c575
jne 0xef53c3e2
pxor mm0, mm7
test dword [edi + edi*8 + 0xf], esp
mov dword [ebp - 0x50f0009c], 0xd10353d7
scasd eax, dword es:[edi]
xlatb
push ebx
add edx, ecx
jmp 0x4783e0
add byte [eax], al
push eax
inc esp
and al, 4
push ss
add eax, dword es:[eax]
call 0xaf545dd0
jmp 0x408675
mov esi, dword [ebp - 0x3b]
mov dword [ebp - 0x74e700f0], ecx
jmp 0x478402
in al, dx
mov ecx, dword [eax - 0x76a23fcd]
mov ch, 0x4d
add byte [ecx + 0x75f63301], cl
or byte [ebp + 0x24e9fa46], cl
sub byte [ebx], al
add bh, al
inc ebp
call 0x44d15f51
jmp 0x40844b
add cl, al
loopne 0x445ead
add eax, edx
movzx eax, word [eax*2 + 0x3f4b1c40]
add al, 0x45
inc eax
sbb al, 0x4b
aas
je 0x445edb
add al, 0xc5
hlt
cmp ebx, edi
jb 0x445eee
mov dh, 0x14
or byte [ecx - 0x2e7417ab], cl
and edx, 0x7f
call dword [0x2614c268]
adc al, 0x26
add eax, dword [eax]
cmp word [ebp - 0x1c], 0x7f
jbe 0x478506
shr ecx, 7
movzx eax, byte [ecx + 0x4bff40]
shl eax, 7
add eax, edx
movzx eax, word [eax*2 + 0x3f4b1c40]
je 0x445f3f
add al, 0xc5
hlt
adc byte [edi], cl
sbb esi, 0x25
cld
inc dword [ebp + 0x3b3a74c9]
invalid
test ecx, ecx
je 0x44603a
cmp edi, esi
jae 0x446069
push dword [ebp - 8]
lea eax, [ebp - 0x50f000ec]
mov edx, ecx
push eax
push esi
adc eax, 0xce3e8cf
cld
movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x74e700f0]
or dword [ebx + 0x751cec75], 0x4c
mov edx, dword [ebp - 0x50f000ec]
mov esi, dword [ebp + 0x84aff24]
jmp 0x446069
lea eax, [edx + edx]
mov ecx, esi
sub ecx, eax
cmp edi, ecx
ja 0x446063
mov ax, word [edi]
cmp ax, word [ebp - 0x74e700d4]
jne 0x446063
cmp edx, 1
je 0x446072
mov ax, word [edi + 2]
cmp ax, word [ebp - 0x74e700d2]
je 0x446072
test dword [esi], ebp
call [eax]
mov esi, dword [edi + ecx - 0x75]
lea edx, [eax]
call [eax]
mov eax, dword [ebx - 0x1c4fd39]
mov ecx, dword [ebp - 0x74e700f0]
add edi, 2
cmp edi, esi
jb 0x446003
jmp 0x446078
mov ecx, dword [ebp - 0x74e700f0]
mov edi, 0xa4e97500
and al, 3
add byte [ebx - 0x48f00fb3], cl
add ah, byte [esi + 0x3b]
inc ebp
in al, dx
movzx eax, word [edx]
cmp ax, word [ebp - 0x14]
cmp eax, dword [ebp - 0x14]
je 0x4786ee
cmp ax, cx
je 0x4086ee
add edx, 2
mov dword [ebp + 0x10], edx
cmp edx, edi
jb 0x446083
mov edi, 0xa9e97500
and al, 3
add byte [ebx + 0x18ff7085], cl
mov eax, dword [ebx]
test dword [edi], esi
push ebp
add cl, cl
mov edx, dword [ebp - 0x50f000ec]
cmp dword [ebp + 0x10], eax
jbe 0x8d455a70
cmp dword [ebp + 0x10], edi
jae 0x8c14622a
dec eax
add al, 0xf8
add byte [ebp + 0x53], dh
mov eax, dword [ebp - 0x74e70090]
call 0xe889ebe0
push ebp
mov esi, dword [ebp + 0x39]
inc ebp
adc byte [esi + 0x32], dh
push dword [ebp - 8]
lea edx, [ebp - 0x50f000ec]
push edx
mov edx, ecx
mov ecx, dword [ebp + 0x10]
push eax
call fcn.0049ba7e
mov ecx, dword [ebp - 0x74e700f0]
or dword [ebx + 0xf1cec75], 0xffffff85
or byte [ebx - 0x6a74f3ab], cl
adc al, 0xff
imul ecx, dword [ebx + 0x18ff7085]
mov eax, dword [ebx + 0x39021045]
jge 0x446131
jb 0x4460db
jmp 0xc99ec2a
outsd dx, dword [esi]
cmp dword [ebp + 0x10], eax
jbe 0x446163
push dword [ebp - 8]
lea edx, [ebp - 0x50f000ec]
push edx
mov edx, ecx
mov ecx, dword [ebp + 0x10]
push eax
call fcn.0049ba7e
mov ecx, dword [ebp - 0x74e700f0]
or dword [ebx + 0xf1cec75], 0xffffff85
int 0
push ebp
or al, 0x8b
xchg ebp, eax
adc al, 0xff
imul ecx, dword [ebx - 0x3f7cefbb]
add cl, byte [ebx - 0x38c4efbb]
mov edx, dword [ebp - 0x50f000ec]
mov eax, dword [ebp + 0x10]
add eax, 2
mov eax, dword [ebp + 0x10]
cmp eax, edi
jae 0x749db72a
mov ax, word [eax]
mov dword [ebp - 0xc], 0x3fa8fc00
je 0x4461a3
inc ebp
hlt
add eax, edx
cmp dword [ebp + 0x10], eax
jb 0x44615d
mov ecx, dword [ebp + 0x10]
sub ecx, edx
mov edx, dword [ebp - 0x50f000ec]
mov ax, word [ecx]
cmp ax, word [ebp - 0x74e700d4]
jne 0x4461db
cmp edx, 1
je 0x446224
mov ax, word [ecx + 2]
mov ecx, dword [ebp - 0x74e700f0]
cmp ax, word [ebp - 0x74e700d2]
jne 0x446163
jmp 0x44622a
mov ecx, dword [ebp - 0x74e700f0]
jmp 0x446163
mov ecx, dword [ebp - 0x74e700f0]
mov edi, 0x83661055
jp 0x44622f
or eax, 0x24b6850f
add eax, dword [eax]
fyl2xp1
add dword [ecx + ecx - 0x7d], esi
stc
add cl, byte [edi]
test dword [eax + 0x3b000324], ebp
xlatb
test al, 0x24
add eax, dword [eax]
cmp edx, edi
jae 0x4786ee
cmp word [edx], 0xa
cmp dword [edx], 0xa
mov eax, dword [ebp - 4]
jne 0x408554
stc
and bh, ah
inc dword [ebx + 0x558902c2]
adc cl, ch
out dx, al
and bh, ah
invalid
add edx, 2
mov dword [ebp + 0x10], edx
jmp 0x408554
movzx eax, word [ecx]
mov dword [ebp - 0x28], ecx
mov edx, eax
add ecx, 2
cmp ax, word [ebp - 0x1c]
je 0x4787cc
cmp dx, si
je 0x4087cc
cmp ecx, edi
jb 0x446282
jmp 0x4087c8
dec dword [ebx - 0x21160383]
and bh, ah
inc dword [ebx + 0xf00bc7d]
test dword [eax], esi
and eax, dword [ebx]
add byte [ebx + 0x45898045], cl
mov esp, 0xd78bde8b
mov esi, dword [ebp + 0x3231fe9]
add byte [eax + esi - 0x73], dh
xchg ah, ah
add ebx, dword [esp + edx*8 + 0x66]
retf 0xf04
inc ebx
or al, 0xbe
jmp 0x4463d8
rol eax, 0x5d
ret
mov ecx, dword [edi]
test ch, dl
and edi, esp
movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x74e700f0]
mov eax, dword [ebp - 4]
jmp 0x8b5d6381
insd dword es:[edi], dx
call [eax]
mov ecx, dword [ebx + 0x45c71075]
test al, 0xd7
push ebx
add edx, ecx
jmp 0x408518
cmp esi, 0x4afc19
jmp 0x4463af
add byte [ecx], cl
mov ch, 0x4d
add byte [ecx + 0x2da0e801], cl
cld
jg 0x446440
add byte [ecx + ebp*8], al
mov eax, dword [0xfffc23]
invalid
mov eax, dword [ebp + 0x18]
sub esi, edx
sar esi, 1
sar edi, 1
mov dword [eax], esi
mov dword [eax + 4], edi
cmp ecx, 2
jle 0x446481
add al, 0x83
stc
add bh, byte [esi + 7]
sub ebx, edx
sar ebx, 1
mov dword [eax + 8], ebx
mov eax, 0x8b18fff4
jmp 0xa5408801
std
jg 0x4464bc
add byte [ebx], ah
cmp dword [ebp - 0x78], edi
jle 0x4464ca
or dword [ebp - 0x74], 0x8b55e875
push ebp
mov ecx, dword [ecx]
mov ch, 0x4d
add byte [ecx + 0x2d0ae801], cl
cld
jg 0x4464d6
or dword [ebp + 0x189004d], esi
call 0x804091df
add byte [eax], al
add al, 0xe9
add byte [ecx + ebp*8], al
sub al, 0x21
cld
invalid
shr edx, 2
cmp eax, esi
jb 0x446525
mov eax, ecx
pop ecx
ret 0x860f
inc edi
mov dword [esi], 0xaf0fffff
lea esi, [esi + 4]
cmp edi, eax
jb 0x446524
invalid
jmp 0xfe408638
and al, 0xc
cmp ebx, 4
jb 0x47823c
mov ecx, dword [edi + 4]
mov ecx, dword [ecx + 0xc]
call fcn.0040b58b
cmp eax, 1
jne 0x47823c
mov bl, al
xor eax, eax
jmp 0x478240
xor eax, eax
mov bl, al
mov byte [esp + 0x10], bl
cmp word [esi], ax
je 0x478276
push eax
push 1
lea edx, [esp + 0x38]
mov ecx, esi
call fcn.0046ed3d
pop ecx
pop ecx
test al, al
jne 0x478281
mov esi, dword [ebp + 0xc]
mov ecx, esi
call fcn.0040cfc4
and dword [esi], 0
mov dword [esi + 0xc], 1
jmp 0x478399
lea eax, [esp + 0x30]
push eax
call dword [0x7549c254]
adc eax, 0x7549c254
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x34]
push eax
call dword [0x7549c2ac]
lea eax, [esp + 0x14]
jne 0x47821f
inc esp
and al, 0x14
push eax
push eax
call dword [0x49c2b0]
mov eax, dword [edi + 4]
mov esi, dword [eax]
mov ecx, esi
call fcn.00407534
mov ecx, dword [esi + 8]
lea edx, [esp + 0x20]
mov eax, dword [ecx]
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0xc]
mov ecx, edx
mov dword [esp + 0x2c], eax
inc dword [eax]
call fcn.00403ac6
lea eax, [esp + 0x440]
push eax
lea eax, [esp + 0x44]
inc esp
push eax
lea eax, [esp + 0x248]
push eax
lea eax, [esp + 0x1064c]
push eax
push dword [esp + 0x30]
and al, 0x30
call fcn.0042d5a7
add esp, 0x14
lea eax, [esp + 0x240]
push eax
lea eax, [esp + 0x10644]
and al, 0x44
push es
add dword [eax], eax
push eax
call fcn.0042905c
lea eax, [esp + 0x448]
push eax
lea eax, [esp + 0x4c]
push eax
call fcn.0042905c
add esp, 0x10
lea eax, [esp + 0x758b0640]
push eax
push 0x758b7fff
call dword [0xc549c328]
mov edi, dword [0x49c3f8]
lea eax, [esp + 0x10640]
dec ecx
lds ecx, [ebx + 0x49c3f83d]
add byte [ebp + 0x6402484], cl
add dword [eax], eax
push eax
call edi
test eax, eax
je 0x47837c
lea ecx, [esp + 0x40]
call fcn.0046e1bd
mov esi, dword [esp + 0xc]
test al, al
je 0x4783cc
push esi
lea edx, [esp + 0x18]
lea ecx, [esp + 0x44]
call fcn.0046db09
pop ecx
test al, al
jne 0x4783a4
lea eax, [esp + 0x758b0640]
push eax
call edi
mov esi, dword [ebp + 0xc]
mov ecx, esi
call fcn.0040cfc4
mov dword [esi + 0xc], 1
and dword [esi], 0
lea ecx, [esp + 0x20]
call fcn.004098b3
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 8
test bl, bl
jne 0x4783b4
lea eax, [esp + 0x758b0640]
push eax
call edi
jmp 0x478390
lea eax, [esp + 0x40]
push eax
call edi
lea eax, [esp + 0x40]
push 0xe84c6b74
push eax
call fcn.004249a7
pop ecx
pop ecx
push dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x18]
push esi
push eax
lea eax, [esp + 0x4c]
push eax
call 0xad297c1
fst qword [ebx]
mov ecx, dword [edx]
test al, al
jne 0x4783a8
mov esi, dword [ebp + 0xc]
mov ecx, esi
call fcn.0040cfc4
and dword [esi], 0
mov dword [esi + 0xc], 1
jmp 0x4783a8
mov ebp, esp
push 0
push dword [ebp - 7]
add bh, bh
jne 0x4783ff
push es
jne 0x478411
call 0x75d29907
pop ebp
ret 8
add byte [ebp - 0x75], dl
in al, dx
push 1
push dword [ebp + 0xc]
push es
jne 0x478425
call 0x75d29907
pop ebp
ret 8
add byte [ebp - 0x75], dl
in al, dx
and esp, 0xfffffff8
sub esp, 0x14
lea ecx, [esp + 4]
push ebx
push esi
push edi
call fcn.0040a985
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 4]
mov esi, dword [eax]
mov ecx, esi
call fcn.00407534
mov ecx, dword [esi + 8]
lea edx, [esp + 0x10]
call 0x8c403ac6
lea ecx, [esp + 0x10]
call fcn.0046d4f2
test al, al
je 0x4784da
cmp dword [ebx + 8], 2
je 0x4784a9
cmp dword [ebx + 8], 3
jne 0x478480
mov ecx, dword [ebx + 4]
push 0x29
mov ecx, dword [ecx + 8]
call fcn.00409b6b
test al, al
jne 0x4784a9
mov eax, dword [ebx + 4]
mov esi, dword [eax + 8]
mov ecx, esi
call fcn.00407534
mov eax, dword [esi + 8]
mov edi, dword [eax]
mov eax, dword [ebx + 4]
mov esi, dword [eax + 4]
mov ecx, esi
call fcn.00407534
push dword [esp + 0x10]
xor ebx, ebx
push ebx
push edi
jmp 0x4784be
mov eax, dword [ebx + 4]
mov esi, dword [eax + 4]
mov ecx, esi
call fcn.00407534
push dword [esp + 0x10]
xor ebx, ebx
push ebx
push ebx
mov eax, dword [esi + 8]
mov esi, dword [0x49c294]
push dword [eax]
call esi
test eax, eax
je 0x4784dc
push dword [esp + 0x10]
push ebx
push ebx
push ebx
call esi
jmp 0x4784ef
xor ebx, ebx
mov esi, dword [ebp + 0xc]
mov ecx, esi
call fcn.0040cfc4
mov dword [esi + 0xc], 1
mov dword [esi], ebx
lea ecx, [esp + 0x10]
call fcn.004098b3
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 8
sub esp, 0x18
push ebx
push esi
push edi
lea ecx, [ebp - 0x18]
call fcn.0040a985
push 0x1fffe
call fcn.0041fe2f
pop ecx
push eax
lea ecx, [ebp - 8]
call fcn.00405746
mov edi, dword [ebp + 8]
mov eax, dword [edi + 4]
mov esi, dword [eax]
mov ecx, esi
call fcn.00407534
mov ecx, dword [esi + 8]
lea edx, [ebp - 0x18]
call fcn.00403ac6
mov eax, dword [edi + 4]
mov esi, dword [eax + 0xc]
mov ecx, esi
call fcn.00407534
mov eax, dword [esi + 8]
mov ebx, dword [eax]
mov eax, dword [edi + 4]
mov esi, dword [eax + 8]
mov ecx, esi
call fcn.00407534
mov eax, dword [esi + 8]
mov edi, dword [eax]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov esi, dword [eax + 4]
mov ecx, esi
call fcn.00407534
push dword [ebp - 0x18]
mov eax, dword [esi + 8]
push 0xffff
push dword [ebp - 8]
push ebx
push edi
push dword [eax]
call dword [0x49c290]
push dword [ebp - 8]
mov ecx, dword [ebp + 0xc]
call fcn.00409c92
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
sub dword [eax], 1
jne 0x4785b7
push 4
push eax
call fcn.0041fdf1
push dword [ebp - 8]
call fcn.0041fe38
add esp, 0xc
lea ecx, [ebp - 0x18]
call fcn.004098b3
xor eax, eax
leave
ret 8
movzx eax, word [ecx + esi*2]
cmp eax, 0x3b
jne 0x478687
cmp dword [edi], esi
jne 0x478687
mov dl, 1
jmp 0x478704
cmp eax, 0x3d
jne 0x4786a1
cmp dword [edi + 4], 0
jne 0x4786a1
test dl, dl
jne 0x4786a1
lea eax, [esi + 1]
mov dword [edi + 4], esi
mov dword [edi + 8], eax
jmp 0x478704
test ax, ax
jne 0x478704
push 0xd
pop eax
mov word [ecx + esi*2], ax
xor eax, eax
cmp dword [edi + 8], eax
je 0x4786eb
test dl, dl
jne 0x4786eb
xor edx, edx
mov dword [edi + 0xc], esi
inc ebx
cmp word [ecx + esi*2 + 2], dx
je 0x4786fb
push 0x14
call 0x8c41fdff
xor edx, edx
pop ecx
lea ecx, [esi + 1]
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov dword [edi + 0x10], eax
mov edi, eax
mov dword [eax], ecx
mov ecx, dword [esp + 0x20]
jmp 0x4786fb
xor edx, edx
lea eax, [esi + 1]
mov dword [edi], eax
mov dword [edi + 0xc], edx
inc esi
add dword [ecx + 0xc578907], ecx
mov dword [edi + 8], edx
mov dword [edi + 4], edx
xor eax, eax
cmp word [ecx + esi*2 + 2], ax
je 0x47870f
inc esi
cmp esi, dword [esp + 0x14]
jl 0x478676
mov esi, ebx
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x18]
test esi, esi
jle 0x75d2dc75
mov edi, dword [ebp + 0xc]
mov ecx, edi
call fcn.0040640f
cmp dword [edi + 0xc], 5
jne 0x478739
mov edi, dword [edi]
mov dword [esp + 0x14], edi
jmp 0x478741
xor eax, eax
mov edi, eax
mov dword [esp + 0x14], eax
push 2
lea eax, [esi + 1]
push eax
push 2
push edi
call fcn.00406a74
xor eax, eax
mov dword [esp + 0x38], esi
push eax
push eax
mov dword [esp + 0x48], eax
lea eax, [esp + 0x40]
push 2
push eax
push edi
mov dword [esp + 0x58], 1
call fcn.004070d4
add esp, 0x24
lea ecx, [esp + 0x28]
call fcn.0040cfc4
lea ecx, [esp + 0x38]
call fcn.0040a985
lea ecx, [esp + 0x28]
call fcn.0040a985
mov edi, dword [esp + 0x20]
test esi, esi
jle 0x478861
mov dword [esp + 0x10], 1
push 0xffffffffffffffff
xor eax, eax
lea ecx, [esp + 0x3c]
push eax
call fcn.004093d6
mov eax, dword [ebx + 4]
lea ecx, [esp + 0x38]
sub eax, dword [ebx]
push eax
push dword [ebx]
push edi
call fcn.00406eb4
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x5c]
call fcn.00406fac
xor eax, eax
push eax
push dword [esp + 0x14]
fsubr st(7), st(0)
clc
push dword [ebx]
rcl byte [eax - 1], 0x74
and al, 0x14
lea eax, [esp + 0x60]
push 2
push eax
push dword [esp + 0x24]
call fcn.004070d4
add esp, 0x14
lea ecx, [esp + 0x58]
call fcn.0040cfc4
push 0xffffffffffffffff
xor eax, eax
lea ecx, [esp + 0x2c]
push eax
call fcn.004093d6
mov eax, dword [ebx + 0xc]
lea ecx, [esp + 0x28]
sub eax, dword [ebx + 8]
push eax
push dword [ebx + 8]
push edi
call fcn.00406eb4
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x6c]
call fcn.00406fac
push 1
push dword [esp + 0x14]
lea eax, [esp + 0x70]
push 2
push eax
push dword [esp + 0x24]
call fcn.004070d4
add esp, 0x14
lea ecx, [esp + 0x68]
call fcn.0040cfc4
mov eax, ebx
mov ebx, dword [ebx + 0x10]
push 0x14
push eax
call fcn.0041fdf1
inc dword [esp + 0x18]
pop ecx
pop ecx
sub esi, 1
jne 0x4787a2
lea ecx, [esp + 0x28]
call fcn.004098b3
lea ecx, [esp + 0x38]
call fcn.004098b3
jmp 0x4788d4
mov eax, dword [esp + 0x24]
sub dword [eax], 1
jne 0x4788ee
push 4
push eax
call fcn.0041fdf1
push edi
call fcn.0041fe38
add esp, 0xc
lea ecx, [esp + 0x48]
call fcn.004098b3
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 8