Function at 0x40eb40
Capabilities:
Encode data using base64

Disassembly:
push ebx
push edi
push esi
sub esp, 0x80
mov eax, dword [esp + 0x9c]
mov cl, byte [esp + 0x98]
mov edx, dword [esp + 0x94]
mov esi, dword [esp + 0x90]
mov dword [esp + 0x7c], eax
and cl, 1
mov byte [esp + 0x7b], cl
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], esi
mov eax, dword [0x498e4c]
mov edx, eax
dec edx
mov dword [0x498e4c], edx
add eax, 0xb91fb2a0
mov edx, dword [0x499364]
imul edx, eax
mov dword [0x499364], edx
mov eax, dword [0x495c4c]
dec eax
mov dword [0x495c4c], eax
mov edx, dword [0x49a944]
not edx
and eax, edx
mov edx, dword [0x49cf98]
imul edx, eax
mov dword [0x49cf98], edx
mov eax, dword [0x495dcc]
and eax, 0x45eef842
mov dword [0x495dcc], eax
mov eax, dword [0x4994d8]
mov edx, eax
dec edx
mov dword [0x4994d8], edx
add eax, 0x9d53de6
mov edx, dword [0x49907c]
shl edx, 8
and edx, 0xd346591c
cmp eax, edx
jge 0x40ec0b
mov eax, dword [0x49bbb4]
add eax, 0xf31bfffc
mov dword [0x49bbb4], eax
jmp 0x40ec23
mov ax, word [0x49e262]
mov cx, ax
or ecx, 0x4350
mov ax, cx
mov word [0x49e262], ax
mov eax, 0xd12370a3
mov dword [esp + 0x60], 0
mov dword [0x49d014], 0xc6793ec3
mov dword [esp + 0x5c], 0
mov ecx, dword [0x49b0a0]
cmp eax, ecx
jne 0x40ec7b
mov ax, word [0x49e1ea]
mov cx, ax
dec ecx
mov dx, cx
mov word [0x49e1ea], dx
movsx ecx, ax
or ecx, 0xcfe18d7f
mov esi, dword [0x496110]
add esi, ecx
mov dword [0x496110], esi
mov eax, esp
mov dword [eax + 4], 0x41
mov dword [eax], 0x3900
call fcn.0043b390
mov dword [esp + 0x44], eax
mov cx, word [0x4a0070]
mov ax, cx
inc eax
mov cx, ax
mov word [0x4a0070], cx
movsx eax, cx
mov edx, dword [0x495d18]
mov esi, edx
dec esi
mov dword [0x495d18], esi
mov esi, dword [0x49a68c]
add edx, esi
or eax, edx
cmp eax, 0x674abaf
jne 0x40ed19
mov eax, dword [0x4969e4]
mov ecx, eax
dec ecx
mov dword [0x4969e4], ecx
add eax, 0x7d2131e0
mov ecx, dword [0x49a968]
mov dx, word [0x49ded6]
movsx esi, dx
xor esi, 0xffffffff
sub ecx, esi
and ecx, 0x9bac295c
cmp eax, ecx
jg 0x40ed14
mov eax, dword [0x49c588]
xor eax, 0x624406b2
mov dword [0x49c588], eax
jmp 0x40ed31
mov ax, word [0x49fd9c]
mov cx, ax
or ecx, 0x3ff9
mov ax, cx
mov word [0x49fd9c], ax
mov eax, 0xbce691f8
mov ecx, esp
mov dword [ecx + 4], 4
mov dword [ecx], 0x2f69
mov dword [esp + 0x40], eax
call fcn.0043b390
mov dword [esp + 0x6c], eax
mov dx, word [0x49fe6a]
mov ax, dx
inc eax
mov dx, ax
mov word [0x49fe6a], dx
movsx eax, dx
add eax, 0xa98649da
mov dword [0x49b7fc], eax
mov eax, dword [esp + 0x6c]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x51]
mov dword [ecx], eax
call fcn.00455d20
mov ecx, dword [0x497b50]
xor ecx, 0x1325dcb0
mov dword [0x497b50], ecx
mov ecx, esp
mov dword [ecx + 4], 4
mov dword [ecx], 0x3ff5
mov dword [esp + 0x3c], eax
call fcn.0043b390
mov dword [esp + 0x68], eax
mov eax, dword [0x49adbc]
mov ecx, eax
dec ecx
mov dword [0x49adbc], ecx
or eax, 0xa854f9f7
mov ecx, dword [0x4986a8]
imul ecx, eax
mov dword [0x4986a8], ecx
mov eax, dword [esp + 0x6c]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 4
call fcn.00403dd0
mov eax, dword [0x497da4]
and eax, 0x60f9c0e
mov dword [0x497da4], eax
mov eax, dword [esp + 0x68]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x4d]
mov dword [ecx], eax
call fcn.00455d20
mov ecx, dword [0x499630]
mov esi, ecx
inc esi
mov dword [0x499630], esi
add ecx, 0x40263539
mov esi, dword [0x49b8cc]
xor esi, ecx
mov dword [0x49b8cc], esi
mov ecx, esp
mov dword [ecx + 4], 4
mov dword [ecx], 0x314f
mov dword [esp + 0x38], eax
call fcn.0043b390
mov dword [esp + 0x64], eax
mov eax, dword [0x49b614]
mov dx, word [0x4a02ae]
mov cx, dx
sub ecx, eax
mov dx, cx
mov word [0x4a02ae], dx
mov eax, dword [esp + 0x68]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 4
call fcn.00403dd0
mov dx, word [0x4a005a]
movsx eax, dx
shl eax, 3
add eax, 0x1abf2681
mov ecx, dword [esp + 0x40]
cmp ecx, eax
jne 0x40eec9
mov ax, word [0x49e284]
mov cx, ax
mov edx, ecx
inc edx
mov ax, dx
mov word [0x49e284], ax
mov ax, word [0x49d8f0]
mov dx, ax
or edx, ecx
mov ax, dx
mov word [0x49d8f0], ax
jmp 0x40eed8
mov eax, dword [0x4960c8]
or eax, 0xc7bd71a1
mov dword [0x4960c8], eax
mov eax, 0x912f556f
mov ecx, dword [esp + 0x64]
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [esp + 0x49]
mov dword [edx], ecx
mov dword [esp + 0x34], eax
call fcn.00455d20
mov ecx, dword [0x49a650]
and ecx, 0xb24d5b83
mov edx, dword [0x49b3d4]
xor ecx, edx
xor ecx, 0xaf2b5a42
mov dword [0x49b3d4], ecx
mov ecx, dword [esp + 0x64]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 4
mov dword [esp + 0x30], eax
call fcn.00403dd0
mov si, word [0x49e31c]
movsx eax, si
imul eax, eax, 0xfe406893
mov ecx, dword [esp + 0x34]
cmp ecx, eax
jne 0x40ef6f
mov eax, dword [0x49b140]
mov cx, word [0x4a0608]
movsx edx, cx
imul eax, edx
and eax, 0x706cbe84
mov edx, dword [0x49b2f8]
imul edx, eax
mov dword [0x49b2f8], edx
jmp 0x40ef74
cmp dword [esp + 0x74], 0
je 0x40f43e
mov ax, word [0x4a054c]
mov cx, ax
dec ecx
mov ax, cx
mov word [0x4a054c], ax
movsx ecx, ax
mov edx, dword [0x49a1bc]
shl edx, 3
xor edx, 0x413434b7
xor edx, 0x69a7ab93
cmp ecx, edx
jne 0x40efbb
mov word [0x49df96], 0x9dda
mov eax, dword [esp + 0x74]
dec eax
mov dword [esp + 0x74], eax
mov eax, dword [0x497fc4]
mov ecx, eax
dec ecx
mov dword [0x497fc4], ecx
imul eax, eax, 0xe38ed9e5
mov dx, word [0x49fbb4]
mov cx, dx
add ecx, eax
mov dx, cx
mov word [0x49fbb4], dx
mov eax, dword [esp + 0x70]
mov bl, byte [eax]
mov eax, dword [esp + 0x60]
mov byte [esp + eax + 0x59], bl
mov eax, dword [0x49b8c4]
imul eax, eax, 0x7d020951
mov dword [0x49b8c4], eax
mov eax, dword [esp + 0x60]
inc eax
mov dword [esp + 0x60], eax
mov dx, word [0x4a06a0]
mov ax, dx
or eax, 0xae42
mov dx, ax
mov word [0x4a06a0], dx
mov eax, dword [esp + 0x70]
inc eax
mov dword [esp + 0x70], eax
mov eax, dword [0x495ae8]
mov ecx, eax
inc ecx
mov dword [0x495ae8], ecx
or eax, 0xf5075fef
mov ecx, dword [0x49c3bc]
add ecx, eax
mov dword [0x49c3bc], ecx
cmp dword [esp + 0x60], 3
jne 0x40f42a
mov eax, 0xc73720b7
mov ecx, dword [0x4980f0]
inc ecx
mov dword [0x4980f0], ecx
xor ecx, 0x24c089c5
mov edx, dword [0x49867c]
add edx, ecx
mov dword [0x49867c], edx
movzx ecx, byte [esp + 0x59]
shr ecx, 2
mov bl, cl
mov byte [esp + 0x55], bl
mov ecx, dword [0x499ae8]
add ecx, 0x94de2972
mov dword [0x499ae8], ecx
movzx ecx, byte [esp + 0x59]
and ecx, 3
shl ecx, 4
mov bl, cl
mov byte [esp + 0x56], bl
mov ecx, dword [0x498558]
and ecx, 0xed2f499
mov dword [0x498558], ecx
movzx ecx, byte [esp + 0x5a]
shr ecx, 4
movzx edx, byte [esp + 0x56]
add edx, ecx
mov bl, dl
mov byte [esp + 0x56], bl
mov dword [0x49b268], 0xa97848d5
movzx ecx, byte [esp + 0x5a]
and ecx, 0xf
shl ecx, 2
mov bl, cl
mov byte [esp + 0x57], bl
mov ecx, dword [0x49a360]
and ecx, 0x158798b5
mov dword [0x49a360], ecx
movzx ecx, byte [esp + 0x5b]
shr ecx, 6
movzx edx, byte [esp + 0x57]
add edx, ecx
mov bl, dl
mov byte [esp + 0x57], bl
mov ecx, dword [0x49bdd4]
mov edx, ecx
inc edx
mov dword [0x49bdd4], edx
xor ecx, 0xf7f9d9bc
cmp eax, ecx
je 0x40f14f
mov eax, dword [0x49ace0]
xor eax, 0xa93f8b4c
mov dword [0x49ace0], eax
mov eax, 0xa181c742
movzx ecx, byte [esp + 0x5b]
and ecx, 0x3f
mov dl, cl
mov byte [esp + 0x58], dl
mov ecx, dword [0x49a4a0]
shl ecx, 8
or ecx, 0xd088570f
mov esi, dword [0x496ae0]
imul esi, ecx
mov dword [0x496ae0], esi
mov dword [esp + 0x60], 0
mov ecx, dword [0x49ce90]
mov esi, ecx
inc esi
mov dword [0x49ce90], esi
or ecx, 0x26b13b27
cmp eax, ecx
jle 0x40f1b9
mov eax, dword [0x4996f8]
add eax, 0x6b15fd15
mov dword [0x4996f8], eax
jmp 0x40f1e9
mov eax, 0x580e35a7
mov ecx, dword [0x49cd18]
sar ecx, 5
and ecx, 0x8f194c9
cmp eax, ecx
je 0x40f1e4
mov eax, dword [0x49851c]
and eax, 0x8effacfe
mov dword [0x49851c], eax
jmp 0x40f1e9
jmp 0x40f1ee
cmp dword [esp + 0x60], 4
je 0x40f3e9
mov eax, dword [0x49c4cc]
shl eax, 7
and eax, 0x5ff7a180
mov cx, word [0x49ec7e]
movsx edx, cx
xor edx, 0x3ffd9ecc
cmp eax, edx
jl 0x40f22e
mov eax, dword [0x499774]
imul eax, eax, 0x214a002
mov dword [0x499774], eax
test byte [esp + 0x7b], 1
je 0x40f35f
mov eax, dword [esp + 0x60]
movzx eax, byte [esp + eax + 0x55]
cmp eax, 0x3d
jle 0x40f35f
mov eax, dword [0x498f68]
sar eax, 2
xor eax, 0xe957dd4b
mov ecx, dword [0x497250]
imul ecx, eax
mov dword [0x497250], ecx
mov eax, dword [esp + 0x60]
movzx eax, byte [esp + eax + 0x55]
cmp eax, 0x3e
jne 0x40f2c9
mov eax, dword [0x49920c]
imul eax, eax, 0xddcf0ec4
mov ecx, dword [0x496980]
xor ecx, eax
mov dword [0x496980], ecx
mov ecx, dword [esp + 0x7c]
mov eax, esp
lea edx, [esp + 0x51]
mov dword [eax], edx
call fcn.00406600
sub esp, 4
mov ecx, dword [0x49cb54]
add ecx, 0x1bbdf573
mov edx, dword [0x497f44]
or edx, ecx
mov dword [0x497f44], edx
mov dword [esp + 0x2c], eax
jmp 0x40f350
mov eax, dword [0x4995d4]
mov ecx, eax
inc ecx
mov dword [0x4995d4], ecx
add eax, 0x4677c7d9
mov ecx, dword [0x498c8c]
inc ecx
mov dword [0x498c8c], ecx
xor eax, ecx
cmp eax, 0xcfa21816
jne 0x40f305
mov eax, dword [0x497e58]
and eax, 0x6117c7b6
mov dword [0x497e58], eax
mov ecx, dword [esp + 0x7c]
mov eax, esp
lea edx, [esp + 0x4d]
mov dword [eax], edx
call fcn.00406600
sub esp, 4
mov si, word [0x49ff64]
mov cx, si
mov edx, ecx
dec edx
mov si, dx
mov word [0x49ff64], si
mov si, word [0x49e63a]
mov dx, si
or ecx, edx
or ecx, 0xb80e
mov si, cx
mov word [0x49e63a], si
mov dword [esp + 0x28], eax
mov dword [0x499158], 0x90594a56
jmp 0x40f3bc
mov eax, dword [0x49989c]
add eax, 0x973f8042
mov dword [0x49989c], eax
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x60]
movzx eax, byte [esp + eax + 0x55]
mov edx, dword [esp + 0x44]
movsx eax, byte [edx + eax]
mov edx, esp
mov dword [edx], eax
call fcn.00442880
sub esp, 4
mov ecx, dword [0x49b7c0]
not ecx
and ecx, 0x4316
mov si, word [0x49d69c]
mov dx, si
lea ecx, [edx + ecx + 0xb869]
mov si, cx
mov word [0x49d69c], si
mov dword [esp + 0x24], eax
mov eax, dword [0x49b1d0]
xor eax, 0x56adcf30
mov dword [0x49b1d0], eax
mov eax, dword [esp + 0x60]
inc eax
mov dword [esp + 0x60], eax
mov eax, dword [0x497f64]
imul eax, eax, 0x54503520
mov dword [0x497f64], eax
jmp 0x40f1ee
mov eax, 0x9f65b843
mov ecx, dword [0x49cfd0]
add ecx, 0xdd02d135
mov dword [0x49cfd0], ecx
mov dword [esp + 0x60], 0
mov ecx, dword [0x49c2d0]
cmp eax, ecx
jle 0x40f425
mov eax, dword [0x497428]
or eax, 0x79c837ba
mov dword [0x497428], eax
jmp 0x40f42a
mov eax, dword [0x4963ec]
or eax, 0x1a65785
mov dword [0x4963ec], eax
jmp 0x40ef74
mov ax, word [0x49f2f6]
mov cx, ax
add ecx, 0x67500d2
mov ax, cx
mov word [0x49f2f6], ax
cmp dword [esp + 0x60], 0
je 0x40faf8
mov eax, 0x6a195144
mov ecx, dword [0x49be5c]
mov edx, ecx
inc edx
mov dword [0x49be5c], edx
add ecx, 0xc273402a
cmp eax, ecx
jge 0x40f49b
mov eax, dword [0x495fbc]
and eax, 0xd8ab0602
mov ecx, dword [0x49a2ac]
sub ecx, eax
mov dword [0x49a2ac], ecx
mov eax, dword [esp + 0x60]
mov dword [esp + 0x5c], eax
mov eax, dword [0x4969bc]
sar eax, 6
and eax, 0xe3d8b0b1
xor eax, 0xfc3a0b2a
mov ecx, dword [0x49c9c8]
add ecx, eax
mov dword [0x49c9c8], ecx
cmp dword [esp + 0x5c], 3
jge 0x40f530
mov ax, word [0x49e12a]
mov cx, ax
xor ecx, 0x2a19
mov ax, cx
mov word [0x49e12a], ax
mov ecx, dword [esp + 0x5c]
mov byte [esp + ecx + 0x59], 0
mov ecx, dword [0x496c94]
not ecx
mov ax, word [0x49fcca]
movsx edx, ax
or ecx, edx
mov edx, dword [0x49989c]
xor edx, ecx
mov dword [0x49989c], edx
mov ecx, dword [esp + 0x5c]
inc ecx
mov dword [esp + 0x5c], ecx
mov ecx, dword [0x498124]
imul ecx, ecx, 0x23185749
mov dword [0x498124], ecx
jmp 0x40f4c3
mov eax, 0xb8573eea
mov ecx, dword [0x495c08]
cmp eax, ecx
jl 0x40f572
mov eax, dword [0x4972c0]
dec eax
mov dword [0x4972c0], eax
mov cx, word [0x4a0082]
mov dx, cx
inc edx
mov si, dx
mov word [0x4a0082], si
movsx edx, cx
and eax, edx
xor eax, 0x4a1abd25
mov dword [0x49748c], eax
mov eax, 0x9aa775f0
movzx ecx, byte [esp + 0x59]
shr ecx, 2
mov dl, cl
mov byte [esp + 0x55], dl
mov ecx, dword [0x49c178]
inc ecx
mov dword [0x49c178], ecx
add ecx, 0x3473e284
add ecx, 0xd413b01b
cmp eax, ecx
jge 0x40f5c1
mov eax, dword [0x4991a8]
mov ecx, dword [0x495fd8]
xor eax, ecx
mov ecx, dword [0x496b7c]
xor ecx, eax
mov dword [0x496b7c], ecx
movzx eax, byte [esp + 0x59]
and eax, 3
shl eax, 4
mov cl, al
mov byte [esp + 0x56], cl
mov eax, dword [0x4995dc]
imul eax, eax, 0x14d11891
mov dword [0x4995dc], eax
movzx eax, byte [esp + 0x5a]
shr eax, 4
movzx edx, byte [esp + 0x56]
add edx, eax
mov cl, dl
mov byte [esp + 0x56], cl
mov eax, dword [0x498920]
and eax, 0x98b26244
mov dword [0x498920], eax
movzx eax, byte [esp + 0x5a]
and eax, 0xf
shl eax, 2
mov cl, al
mov byte [esp + 0x57], cl
mov eax, dword [0x49b35c]
mov edx, eax
dec edx
mov dword [0x49b35c], edx
mov edx, dword [0x499bdc]
shr edx, 8
and eax, edx
and eax, 0x61b1
mov si, ax
mov word [0x49e47c], si
movzx eax, byte [esp + 0x5b]
shr eax, 6
movzx edx, byte [esp + 0x57]
add edx, eax
mov cl, dl
mov byte [esp + 0x57], cl
mov eax, dword [0x49afcc]
mov si, word [0x49e86c]
mov dx, si
imul edx, eax
mov si, dx
mov word [0x49e86c], si
movzx eax, byte [esp + 0x5b]
and eax, 0x3f
mov cl, al
mov byte [esp + 0x58], cl
mov dword [0x49c368], 0xd6ae003a
mov dword [esp + 0x5c], 0
mov eax, dword [0x49a934]
mov edx, dword [0x49cc18]
xor edx, eax
mov dword [0x49cc18], edx
mov eax, dword [0x4989b4]
mov cx, word [0x49d402]
mov dx, cx
dec edx
mov si, dx
mov word [0x49d402], si
movsx edx, cx
add edx, 0x3cb4b236
cmp eax, edx
je 0x40f6ee
mov eax, dword [0x497e48]
mov cx, word [0x49d8fe]
mov dx, cx
xor edx, eax
mov cx, dx
mov word [0x49d8fe], cx
jmp 0x40f74f
mov eax, 0x356730f3
mov ecx, dword [0x49b17c]
cmp eax, ecx
jge 0x40f721
mov eax, 0x1a643593
mov ecx, dword [0x499118]
xor ecx, 0xffffffff
cmp eax, ecx
jl 0x40f71c
jmp 0x40f71c
jmp 0x40f74a
mov eax, 0x979f8d3f
mov ecx, dword [0x496b74]
dec ecx
mov dword [0x496b74], ecx
cmp eax, ecx
jge 0x40f740
jmp 0x40f745
jmp 0x40f745
jmp 0x40f74a
jmp 0x40f74f
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x60]
jle 0x40f7ba
mov eax, 0x9482d780
mov cx, word [0x49ff52]
mov dx, cx
inc edx
mov si, dx
mov word [0x49ff52], si
movsx edx, cx
add edx, 0xe4cb2ec4
cmp eax, edx
je 0x40f7b5
mov ax, word [0x4a0284]
mov cx, ax
dec ecx
mov ax, cx
mov word [0x4a0284], ax
or ecx, 0xdbfd
mov ax, word [0x49d51c]
mov dx, ax
sub edx, ecx
mov ax, dx
mov word [0x49d51c], ax
jmp 0x40f9b2
mov ax, word [0x49d50c]
mov cx, ax
xor ecx, 0x1f19
mov ax, cx
mov word [0x49d50c], ax
test byte [esp + 0x7b], 1
je 0x40f915
mov eax, dword [esp + 0x5c]
movzx eax, byte [esp + eax + 0x55]
cmp eax, 0x3d
jle 0x40f915
mov ax, word [0x49ea34]
mov cx, ax
xor ecx, 0x2640
mov ax, cx
mov word [0x49ea34], ax
mov ecx, dword [esp + 0x5c]
movzx ecx, byte [esp + ecx + 0x55]
cmp ecx, 0x3e
jne 0x40f89c
mov eax, 0x3c5d2f8a
mov ecx, dword [0x497a90]
shr ecx, 5
mov dx, word [0x49f6e6]
mov si, dx
add esi, ecx
mov dx, si
mov word [0x49f6e6], dx
mov ecx, dword [esp + 0x7c]
mov esi, esp
lea edi, [esp + 0x51]
mov dword [esi], edi
mov dword [esp + 0x20], eax
call fcn.00406600
sub esp, 4
mov dx, word [0x49f8ec]
movsx ecx, dx
xor ecx, 0xffffffff
mov esi, dword [esp + 0x20]
cmp esi, ecx
mov dword [esp + 0x1c], eax
jle 0x40f897
mov eax, dword [0x49b35c]
add eax, 0xbf860e00
and eax, 0xfd3e
mov cx, word [0x4a0984]
mov dx, cx
or edx, eax
mov cx, dx
mov word [0x4a0984], cx
jmp 0x40f8df
mov eax, dword [0x497a1c]
or eax, 0xd641868b
mov dword [0x497a1c], eax
mov ecx, dword [esp + 0x7c]
mov eax, esp
lea edx, [esp + 0x4d]
mov dword [eax], edx
call fcn.00406600
sub esp, 4
mov ecx, dword [0x496ee8]
mov si, word [0x49f492]
mov dx, si
sub edx, ecx
mov si, dx
mov word [0x49f492], si
mov dword [esp + 0x18], eax
mov ax, word [0x49dee0]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x49dee0], ax
movsx ecx, ax
mov edx, 0x705c2c54
sub edx, ecx
or edx, 0xdaaedf37
mov ecx, dword [0x499e24]
add ecx, edx
mov dword [0x499e24], ecx
jmp 0x40f97a
mov eax, 0xf16cf432
mov ecx, dword [0x498aa8]
xor ecx, 0xffffffff
cmp eax, ecx
jle 0x40f943
mov ax, word [0x49ec52]
mov cx, ax
xor ecx, 0x1a6f
mov ax, cx
mov word [0x49ec52], ax
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x5c]
movzx eax, byte [esp + eax + 0x55]
mov edx, dword [esp + 0x44]
movsx eax, byte [edx + eax]
mov edx, esp
mov dword [edx], eax
call fcn.00442880
sub esp, 4
mov ecx, dword [0x49cbfc]
and ecx, 0x7cca3668
mov dword [0x49cbfc], ecx
mov dword [esp + 0x14], eax
mov eax, dword [0x49b52c]
add eax, 0x689f9b3
mov dword [0x49b52c], eax
mov eax, dword [esp + 0x5c]
inc eax
mov dword [esp + 0x5c], eax
mov eax, dword [0x497f44]
mov ecx, eax
inc ecx
mov dword [0x497f44], ecx
mov ecx, 0x2ef952fc
sub ecx, eax
mov dword [0x49916c], ecx
jmp 0x40f6a3
jmp 0x40f9b7
cmp dword [esp + 0x60], 3
jge 0x40fadd
mov ax, word [0x4a0916]
mov cx, ax
mov edx, ecx
dec edx
mov ax, dx
mov word [0x4a0916], ax
or ecx, 0xa561
mov ax, word [0x49d14a]
mov dx, ax
imul edx, ecx
mov ax, dx
mov word [0x49d14a], ax
mov ecx, dword [esp + 0x60]
inc ecx
mov dword [esp + 0x60], ecx
mov ecx, dword [0x499684]
and ecx, 0x1a1972f5
mov edx, dword [0x49c7e8]
add edx, ecx
mov dword [0x49c7e8], edx
test byte [esp + 0x7b], 1
je 0x40fa7e
mov ax, word [0x49fa48]
mov cx, ax
imul ecx, ecx, 0xb1843b05
mov ax, cx
mov word [0x49fa48], ax
mov ecx, dword [esp + 0x7c]
mov edx, esp
lea esi, [esp + 0x49]
mov dword [edx], esi
call fcn.00406600
sub esp, 4
mov ecx, dword [0x497b0c]
mov edx, 0x292420c7
sub edx, ecx
and edx, 0x5062
mov di, word [0x49e678]
mov cx, di
add ecx, edx
mov di, cx
mov word [0x49e678], di
mov dword [esp + 0x10], eax
jmp 0x40fac9
mov eax, dword [0x49c1a0]
sar eax, 8
mov ecx, dword [0x49a5a4]
sar ecx, 9
add eax, ecx
mov ecx, dword [0x4989b0]
xor ecx, eax
mov dword [0x4989b0], ecx
mov ecx, dword [esp + 0x7c]
mov eax, esp
mov dword [eax], 0x3d
call fcn.00442880
sub esp, 4
mov ecx, dword [0x49b55c]
xor ecx, 0xc1cbad34
mov dword [0x49b55c], ecx
mov dword [esp + 0xc], eax
mov eax, dword [0x49c9cc]
xor eax, 0x9feef5af
mov dword [0x49c9cc], eax
jmp 0x40f9b7
mov eax, dword [0x499590]
dec eax
mov dword [0x499590], eax
imul eax, eax, 0xd4927af4
xor eax, 0x1467cbc4
mov dword [0x495a08], eax
mov eax, 0xcaf9b56f
mov cx, word [0x4a0064]
mov dx, cx
imul edx, edx, 0x4334e04c
mov cx, dx
mov word [0x4a0064], cx
mov edx, dword [esp + 0x44]
mov esi, esp
mov dword [esi + 4], edx
mov dword [esi], 0x41
mov dword [esp + 8], eax
call fcn.00403dd0
mov cx, word [0x49eea2]
mov ax, cx
imul eax, eax, 0x818d9ce5
mov cx, ax
mov word [0x49eea2], cx
mov eax, esp
lea edx, [esp + 0x51]
mov dword [eax], edx
mov dword [eax + 4], 4
call fcn.004030c0
mov eax, dword [0x49c36c]
and eax, 0x2e3aac33
mov edx, dword [esp + 8]
cmp edx, eax
jg 0x40fbdf
mov eax, 0xc937aa7a
mov cx, word [0x49d2d8]
movsx edx, cx
add edx, 0xfd8951e2
mov cx, word [0x4a07e6]
movsx esi, cx
add edx, esi
cmp eax, edx
jne 0x40fbbe
mov eax, dword [0x4995d4]
shr eax, 5
imul eax, eax, 0x73b7f127
add eax, 0xcf029f36
mov cx, ax
mov word [0x49e666], cx
jmp 0x40fbda
mov eax, dword [0x499dc4]
add eax, 0x3b649420
mov ecx, dword [0x49bf48]
or eax, ecx
or eax, 0xe26b63dc
mov dword [0x49bf48], eax
jmp 0x40fbdf
mov eax, esp
lea ecx, [esp + 0x4d]
mov dword [eax], ecx
mov dword [eax + 4], 4
call fcn.004030c0
mov dx, word [0x49f64a]
movsx eax, dx
mov ecx, dword [0x49abcc]
mov esi, ecx
dec esi
mov dword [0x49abcc], esi
imul ecx, ecx, 0xcf1c7853
sub eax, ecx
mov ecx, dword [0x49b02c]
or ecx, eax
mov dword [0x49b02c], ecx
mov eax, esp
lea ecx, [esp + 0x49]
mov dword [eax], ecx
mov dword [eax + 4], 4
call fcn.004030c0
mov eax, dword [0x49b538]
add eax, 0xaa2ac615
mov dword [0x49b538], eax
add esp, 0x80
pop esi
pop edi
pop ebx
ret