Function at 0x405720
Capabilities:
Encode data using base64

Disassembly:
push edi
push esi
sub esp, 0x74
mov eax, dword [esp + 0x8c]
mov cl, byte [esp + 0x88]
mov edx, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
mov dword [esp + 0x70], eax
and cl, 1
mov byte [esp + 0x6f], cl
mov dword [esp + 0x68], edx
mov dword [esp + 0x64], esi
mov eax, dword [0x4afe24]
mov edx, dword [0x4a4b84]
sar edx, 9
imul eax, edx
cmp eax, 0xe2e4db37
jge 0x4057a4
mov eax, 0x93743f7b
mov ecx, dword [0x4b12f0]
inc ecx
mov dword [0x4b12f0], ecx
add ecx, 0x1a1ceeed
cmp eax, ecx
jl 0x40579f
mov eax, dword [0x4b1cdc]
xor eax, 0x7da7958f
mov dword [0x4b1cdc], eax
jmp 0x4057a4
mov eax, dword [0x4a9f08]
xor eax, 0x82008800
mov dword [0x4a9f08], eax
mov eax, dword [0x4afd24]
and eax, 0xb43ac787
mov dword [0x4afd24], eax
mov cx, word [0x4a21fc]
movsx eax, cx
mov edx, dword [0x4a8e94]
sub edx, eax
mov dword [0x4a8e94], edx
mov dword [esp + 0x54], 0
mov cx, word [0x4a091e]
mov ax, cx
and eax, 0xbda9
mov cx, ax
mov word [0x4a091e], cx
mov dword [esp + 0x50], 0
mov eax, dword [0x4abae0]
sar eax, 5
add eax, 0xa5e05cac
mov edx, dword [0x4a6b68]
sub edx, eax
mov dword [0x4a6b68], edx
mov eax, esp
mov dword [eax + 4], 0x41
mov dword [eax], 0xb137
call fcn.00444b60
mov dword [esp + 0x38], eax
mov dword [0x4abafc], 0xd27ba542
mov eax, esp
mov dword [eax + 4], 4
mov dword [eax], 0xa24b
call fcn.00444b60
mov dword [esp + 0x60], eax
mov eax, dword [0x4ac398]
imul eax, eax, 0xc17a81b8
mov dword [0x4ac398], eax
mov eax, dword [esp + 0x60]
mov edx, esp
mov dword [edx + 4], eax
lea eax, [esp + 0x45]
mov dword [edx], eax
call fcn.004554d0
mov dword [0x4b0dcc], 0xdff25f57
mov edx, esp
mov dword [edx + 4], 4
mov dword [edx], 0x106c
mov dword [esp + 0x34], eax
call fcn.00444b60
mov dword [esp + 0x5c], eax
mov eax, dword [0x4af5b0]
mov edx, dword [0x4ad180]
mov esi, edx
dec esi
mov dword [0x4ad180], esi
lea eax, [eax + edx - 1]
mov cx, word [0x49f6ce]
mov dx, cx
xor eax, edx
xor eax, 0xcff5
mov cx, ax
mov word [0x49f6ce], cx
mov eax, dword [esp + 0x60]
mov edx, esp
mov dword [edx + 4], eax
mov dword [edx], 4
call fcn.0044d6d0
mov eax, dword [0x4aed6c]
mov edx, eax
dec edx
mov dword [0x4aed6c], edx
mov edx, dword [0x4ae964]
lea eax, [eax + edx - 0xbb0a1a0]
mov dword [0x4ae964], eax
mov eax, dword [esp + 0x5c]
mov edx, esp
mov dword [edx + 4], eax
lea eax, [esp + 0x41]
mov dword [edx], eax
call fcn.004554d0
mov edx, dword [0x4aa298]
dec edx
mov dword [0x4aa298], edx
imul edx, edx, 0xc14598ba
mov esi, dword [0x4ab5e0]
add edx, esi
mov cx, word [0x4a07a4]
mov si, cx
or esi, edx
mov cx, si
mov word [0x4a07a4], cx
mov edx, esp
mov dword [edx + 4], 4
mov dword [edx], 0x1066
mov dword [esp + 0x30], eax
call fcn.00444b60
mov dword [esp + 0x58], eax
mov dword [0x4ac33c], 0xceecf9bd
mov eax, dword [esp + 0x5c]
mov edx, esp
mov dword [edx + 4], eax
mov dword [edx], 4
call fcn.0044d6d0
mov eax, dword [0x4a6b38]
not eax
mov edx, dword [0x4a8ed8]
and edx, eax
mov dword [0x4a8ed8], edx
mov eax, dword [esp + 0x58]
mov edx, esp
mov dword [edx + 4], eax
lea eax, [esp + 0x3d]
mov dword [edx], eax
call fcn.004554d0
mov edx, dword [0x4b27f8]
mov esi, edx
dec esi
mov dword [0x4b27f8], esi
mov esi, dword [0x4a5914]
or edx, esi
or edx, 0xeec961aa
mov dword [0x4a5914], edx
mov edx, dword [esp + 0x58]
mov esi, esp
mov dword [esi + 4], edx
mov dword [esi], 4
mov dword [esp + 0x2c], eax
call fcn.0044d6d0
mov eax, dword [0x4b12e0]
or eax, 0x1e35d1de
mov dword [0x4b12e0], eax
cmp dword [esp + 0x68], 0
je 0x405f0b
mov eax, dword [0x4ae960]
dec eax
mov dword [0x4ae960], eax
imul eax, eax, 0x60e62999
mov ecx, dword [0x4b16dc]
add ecx, eax
mov dword [0x4b16dc], ecx
mov eax, dword [esp + 0x68]
dec eax
mov dword [esp + 0x68], eax
mov dx, word [0x49dc6e]
movsx eax, dx
not eax
or eax, 0x3ef55a2a
mov ecx, dword [0x4acfac]
xor ecx, 0x9829e2e0
cmp eax, ecx
jne 0x405a7f
mov eax, 0x8c000802
mov cx, word [0x4a423a]
movsx edx, cx
and edx, 0x54f152e3
cmp eax, edx
jg 0x405a7a
mov dword [0x4a6cb4], 0x75dcd256
jmp 0x405a7f
mov eax, dword [esp + 0x64]
mov cl, byte [eax]
mov eax, dword [esp + 0x54]
mov byte [esp + eax + 0x4d], cl
mov eax, dword [0x4a673c]
add eax, 0x48d25d1f
mov dword [0x4a673c], eax
mov eax, dword [esp + 0x54]
inc eax
mov dword [esp + 0x54], eax
mov eax, dword [0x4a67b8]
xor eax, 0x80114a02
mov dword [0x4a67b8], eax
mov eax, dword [esp + 0x64]
inc eax
mov dword [esp + 0x64], eax
mov eax, dword [0x4a5030]
or eax, 0x52bc
mov dx, word [0x4a3874]
mov si, dx
xor esi, eax
mov dx, si
mov word [0x4a3874], dx
cmp dword [esp + 0x54], 3
jne 0x405eee
mov eax, 0xbadff7ff
mov dword [0x4a95e4], 0x365c31aa
movzx ecx, byte [esp + 0x4d]
shr ecx, 2
mov dl, cl
mov byte [esp + 0x49], dl
mov ecx, dword [0x4ad1d8]
and ecx, 0x2c7c1911
mov dword [0x4ad1d8], ecx
movzx ecx, byte [esp + 0x4d]
and ecx, 3
shl ecx, 4
mov dl, cl
mov byte [esp + 0x4a], dl
mov si, word [0x49fd12]
mov cx, si
or ecx, 0xc6dc
mov si, cx
mov word [0x49fd12], si
movzx ecx, byte [esp + 0x4e]
shr ecx, 4
movzx edi, byte [esp + 0x4a]
add edi, ecx
mov ecx, edi
mov dl, cl
mov byte [esp + 0x4a], dl
mov ecx, dword [0x4b0fd4]
xor ecx, 0x7b3197ce
mov dword [0x4b0fd4], ecx
movzx ecx, byte [esp + 0x4e]
and ecx, 0xf
shl ecx, 2
mov dl, cl
mov byte [esp + 0x4b], dl
mov ecx, dword [0x4ae9b8]
add ecx, 0x746c93
xor ecx, 0x6eb19b4d
mov edi, dword [0x4b27f4]
sub edi, ecx
mov dword [0x4b27f4], edi
movzx ecx, byte [esp + 0x4f]
shr ecx, 6
movzx edi, byte [esp + 0x4b]
add edi, ecx
mov ecx, edi
mov dl, cl
mov byte [esp + 0x4b], dl
mov ecx, dword [0x4a7a84]
xor ecx, 0xc9e388a0
mov dword [0x4a7a84], ecx
movzx ecx, byte [esp + 0x4f]
and ecx, 0x3f
mov dl, cl
mov byte [esp + 0x4c], dl
mov si, word [0x4a17b0]
movsx ecx, si
cmp eax, ecx
jge 0x405bf4
mov eax, dword [0x4a8688]
xor eax, 0x9aacf8f6
mov dword [0x4a8688], eax
mov dword [esp + 0x54], 0
mov eax, dword [0x4af174]
add eax, 0x7dffd9f6
mov dword [0x4af174], eax
cmp dword [esp + 0x54], 4
je 0x405eab
mov eax, dword [0x4a5a64]
mov ecx, eax
inc ecx
mov dword [0x4a5a64], ecx
imul eax, eax, 0x83db63a6
or eax, 0xd8eba609
mov dx, word [0x49eae2]
mov cx, dx
inc ecx
mov dx, cx
mov word [0x49eae2], dx
movsx ecx, dx
add ecx, 0xa373d328
mov esi, dword [0x4afda8]
and ecx, esi
cmp eax, ecx
jge 0x405c6c
mov eax, dword [0x4aedb8]
xor eax, 0x79b250ac
mov dword [0x4aedb8], eax
test byte [esp + 0x6f], 1
je 0x405db4
mov eax, dword [esp + 0x54]
movzx eax, byte [esp + eax + 0x49]
cmp eax, 0x3d
jle 0x405db4
mov dword [0x4a9c98], 0x63c99686
mov eax, dword [esp + 0x54]
movzx eax, byte [esp + eax + 0x49]
cmp eax, 0x3e
jne 0x405ce3
mov eax, dword [0x4aafd8]
add eax, 0x9a1cd645
mov dword [0x4aafd8], eax
mov ecx, dword [esp + 0x70]
mov eax, esp
lea edx, [esp + 0x45]
mov dword [eax], edx
call fcn.00430570
sub esp, 4
mov ecx, dword [0x4b162c]
add ecx, 0x196d2263
mov dword [0x4b162c], ecx
mov dword [esp + 0x28], eax
jmp 0x405da0
mov eax, 0xf95519
mov cx, word [0x49e858]
mov dx, cx
and edx, 0x2b43
mov cx, dx
mov word [0x49e858], cx
mov ecx, dword [esp + 0x70]
mov edx, esp
lea esi, [esp + 0x41]
mov dword [edx], esi
mov dword [esp + 0x24], eax
call fcn.00430570
sub esp, 4
mov ecx, dword [0x4accfc]
mov edx, dword [esp + 0x24]
sub edx, ecx
cmp edx, 0x60444000
mov dword [esp + 0x20], eax
je 0x405d9b
mov eax, dword [0x4afa48]
or eax, 0xbe827695
mov ecx, dword [0x4ab0c4]
imul ecx, ecx, 0x2af12bff
and ecx, 0x88792343
cmp eax, ecx
jge 0x405d7a
mov eax, dword [0x4aff24]
mov cx, word [0x49fcf4]
mov dx, cx
add edx, eax
mov cx, dx
mov word [0x49fcf4], cx
jmp 0x405d96
mov eax, dword [0x4afdc0]
mov ecx, eax
dec ecx
mov dword [0x4afdc0], ecx
mov ecx, dword [0x4a4edc]
and ecx, eax
mov dword [0x4a4edc], ecx
jmp 0x405d9b
jmp 0x405da0
mov eax, dword [0x4b1fa4]
xor eax, 0xe324c4c8
mov dword [0x4b1fa4], eax
jmp 0x405e59
mov eax, dword [0x4aa328]
not eax
add eax, 0x87718b2
xor eax, 0x6abe679
mov ecx, dword [0x4aa740]
add ecx, eax
mov dword [0x4aa740], ecx
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x54]
movzx eax, byte [esp + eax + 0x49]
mov edx, dword [esp + 0x38]
movsx eax, byte [edx + eax]
mov edx, esp
mov dword [edx], eax
call fcn.00418f90
sub esp, 4
mov ecx, dword [0x4adfc8]
mov edx, ecx
dec edx
mov dword [0x4adfc8], edx
add ecx, 0xc0178405
mov edx, dword [0x4b1b6c]
or edx, 0x50012b78
cmp ecx, edx
mov dword [esp + 0x1c], eax
jl 0x405e54
mov eax, 0xadd931c9
mov ecx, dword [0x4a76b0]
shl ecx, 7
cmp eax, ecx
jge 0x405e4f
mov eax, dword [0x4aaea0]
and eax, 0x946a5075
mov ecx, dword [0x4a698c]
xor ecx, eax
mov dword [0x4a698c], ecx
jmp 0x405e54
jmp 0x405e59
mov eax, dword [0x4ab9d4]
and eax, 0xe11b
mov cx, word [0x49ed30]
mov dx, cx
xor edx, eax
mov cx, dx
mov word [0x49ed30], cx
mov eax, dword [esp + 0x54]
inc eax
mov dword [esp + 0x54], eax
mov eax, dword [0x4aafd8]
shr eax, 7
imul eax, eax, 0xb239e2f1
mov cx, word [0x4a163e]
mov dx, cx
sub edx, eax
mov cx, dx
mov word [0x4a163e], cx
jmp 0x405c0b
mov eax, 0x66cd0590
mov ecx, dword [0x4b008c]
cmp eax, ecx
jle 0x405ed7
mov eax, dword [0x4aa6f0]
or eax, 0x8cc121d2
mov ecx, dword [0x4b19dc]
imul ecx, eax
mov dword [0x4b19dc], ecx
mov dword [esp + 0x54], 0
mov eax, dword [0x4a49f8]
xor eax, 0x39c091bc
mov dword [0x4a49f8], eax
mov ax, word [0x49ef7a]
mov cx, ax
add ecx, 0x27df89b3
mov ax, cx
mov word [0x49ef7a], ax
jmp 0x4059fb
mov eax, dword [0x4a6a80]
imul eax, eax, 0x33745758
mov dword [0x4a6a80], eax
cmp dword [esp + 0x54], 0
je 0x406606
mov eax, dword [0x4afc98]
or eax, 0x23db4cd6
mov dword [0x4afc98], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x50], eax
mov eax, dword [0x4ab448]
xor eax, 0xce9fab1d
mov ecx, dword [0x4ae580]
dec ecx
mov dword [0x4ae580], ecx
or eax, ecx
mov ecx, dword [0x4a4e5c]
xor ecx, eax
mov dword [0x4a4e5c], ecx
cmp dword [esp + 0x50], 3
jge 0x405fc5
mov eax, 0x5e257398
mov ecx, dword [0x4a4c34]
mov edx, ecx
inc edx
mov dword [0x4a4c34], edx
cmp eax, ecx
jne 0x405f95
mov dword [0x4ad1f8], 0x655cf7f5
mov eax, dword [esp + 0x50]
mov byte [esp + eax + 0x4d], 0
mov eax, dword [0x4aadc4]
xor eax, 0x36996d02
mov dword [0x4aadc4], eax
mov eax, dword [esp + 0x50]
inc eax
mov dword [esp + 0x50], eax
mov dword [0x4af394], 0xd9ff7dbd
jmp 0x405f64
mov eax, 0x8e85ff2d
mov ecx, dword [0x4ac8b0]
sub eax, ecx
xor eax, 0x878be479
cmp eax, 0xbf4c4fc
jne 0x405ffa
mov ax, word [0x4a1ca0]
mov cx, ax
and ecx, 0x2fe2
mov ax, cx
mov word [0x4a1ca0], ax
mov eax, 0x5d1ebaf9
movzx ecx, byte [esp + 0x4d]
shr ecx, 2
mov dl, cl
mov byte [esp + 0x49], dl
mov ecx, dword [0x4a4f8c]
mov esi, ecx
dec esi
mov dword [0x4a4f8c], esi
and ecx, 0x59c13f80
cmp eax, ecx
jle 0x406064
mov eax, dword [0x4a9c14]
mov ecx, eax
inc ecx
mov dword [0x4a9c14], ecx
mov ecx, dword [0x4aa50c]
mov edx, ecx
inc edx
mov dword [0x4aa50c], edx
mov si, word [0x49f4a4]
movsx edx, si
sub ecx, edx
or eax, ecx
mov ecx, dword [0x4a64b8]
imul ecx, eax
mov dword [0x4a64b8], ecx
movzx eax, byte [esp + 0x4d]
and eax, 3
shl eax, 4
mov cl, al
mov byte [esp + 0x4a], cl
mov eax, dword [0x4ae008]
add eax, 0x221200b
mov dword [0x4ae008], eax
movzx eax, byte [esp + 0x4e]
shr eax, 4
movzx edx, byte [esp + 0x4a]
add edx, eax
mov cl, dl
mov byte [esp + 0x4a], cl
mov eax, dword [0x4ac16c]
sar eax, 8
mov edx, dword [0x4af6b0]
add edx, 0xc2a34610
sub edx, 0x697e2353
cmp eax, edx
jle 0x4060fa
mov eax, 0x1977d123
mov ecx, dword [0x4aa758]
mov edx, ecx
dec edx
mov dword [0x4aa758], edx
xor ecx, 0x4c2e2dfb
cmp eax, ecx
jl 0x4060f5
mov eax, dword [0x4a7144]
and eax, 0x3c36d44
mov ecx, dword [0x4a53b4]
or ecx, eax
mov dword [0x4a53b4], ecx
jmp 0x4060fa
mov eax, 0xe267b52d
movzx ecx, byte [esp + 0x4e]
and ecx, 0xf
shl ecx, 2
mov dl, cl
mov byte [esp + 0x4b], dl
mov si, word [0x4a1f80]
mov cx, si
inc ecx
mov si, cx
mov word [0x4a1f80], si
movsx ecx, si
cmp eax, ecx
jge 0x40614d
mov ax, word [0x49e8f2]
mov cx, ax
add ecx, 0x2e4fd99d
mov ax, cx
mov word [0x49e8f2], ax
jmp 0x406162
mov eax, dword [0x4ad740]
imul eax, eax, 0x5f500da6
add eax, 0xf7a5a91b
mov dword [0x4ac034], eax
movzx eax, byte [esp + 0x4f]
shr eax, 6
movzx ecx, byte [esp + 0x4b]
add ecx, eax
mov dl, cl
mov byte [esp + 0x4b], dl
mov eax, dword [0x4b2408]
mov ecx, eax
inc ecx
mov dword [0x4b2408], ecx
mov ecx, dword [0x4b1b44]
imul eax, ecx
mov ecx, dword [0x4b02a4]
add ecx, eax
mov dword [0x4b02a4], ecx
movzx eax, byte [esp + 0x4f]
and eax, 0x3f
mov dl, al
mov byte [esp + 0x4c], dl
mov eax, dword [0x4a7648]
xor eax, 0x884c172e
mov dword [0x4a7648], eax
mov dword [esp + 0x50], 0
mov si, word [0x4a484a]
mov ax, si
imul eax, eax, 0xf3edf354
mov si, ax
mov word [0x4a484a], si
mov eax, dword [0x4abca0]
xor eax, 0xdad3e705
mov dword [0x4abca0], eax
mov eax, dword [esp + 0x50]
cmp eax, dword [esp + 0x54]
jle 0x40620c
mov eax, dword [0x4a9714]
and eax, 0xb7fde176
mov dword [0x4a9714], eax
jmp 0x40643a
mov eax, 0x5bfec2f3
mov ecx, dword [0x4b14c8]
dec ecx
mov dword [0x4b14c8], ecx
xor ecx, 0x5020450d
cmp eax, ecx
jg 0x40623a
mov word [0x49ebaa], 0x722f
jmp 0x406251
mov eax, dword [0x4ab4a8]
mov ecx, dword [0x4acfb8]
and eax, ecx
and eax, 0x8dfa4f19
mov dword [0x4acfb8], eax
test byte [esp + 0x6f], 1
je 0x4063ac
mov eax, dword [esp + 0x50]
movzx eax, byte [esp + eax + 0x49]
cmp eax, 0x3d
jle 0x4063ac
mov eax, 0x1658bc1e
mov ecx, dword [0x4a4c10]
mov edx, ecx
dec edx
mov dword [0x4a4c10], edx
cmp eax, ecx
jg 0x4062da
mov ax, word [0x4a10e2]
movsx ecx, ax
sar ecx, 0xa
mov ax, word [0x4a3286]
movsx edx, ax
add edx, 0x10b8f893
mov ax, word [0x49ee60]
mov si, ax
inc esi
mov di, si
mov word [0x49ee60], di
movsx esi, ax
sub edx, esi
cmp ecx, edx
je 0x4062d5
mov eax, dword [0x4b2090]
xor eax, 0x595619ba
mov dword [0x4b2090], eax
jmp 0x4062da
mov eax, dword [esp + 0x50]
movzx eax, byte [esp + eax + 0x49]
cmp eax, 0x3e
jne 0x406333
mov eax, dword [0x4acdfc]
mov ecx, dword [0x4a9cd8]
inc ecx
mov dword [0x4a9cd8], ecx
sub eax, ecx
add eax, 0x7043f715
mov dword [0x4a6d24], eax
mov ecx, dword [esp + 0x70]
mov eax, esp
lea edx, [esp + 0x45]
mov dword [eax], edx
call fcn.00430570
sub esp, 4
mov ecx, dword [0x4adcdc]
mov dword [0x4a7cc0], ecx
mov dword [esp + 0x18], eax
jmp 0x406398
mov ax, word [0x49e150]
mov cx, ax
imul ecx, ecx, 0x57498709
mov ax, word [0x4a3e24]
mov dx, ax
mov esi, edx
dec esi
mov ax, si
mov word [0x4a3e24], ax
add ecx, edx
mov ax, word [0x4a37fa]
mov dx, ax
imul edx, ecx
mov ax, dx
mov word [0x4a37fa], ax
mov ecx, dword [esp + 0x70]
mov edx, esp
lea esi, [esp + 0x41]
mov dword [edx], esi
call fcn.00430570
sub esp, 4
mov ecx, dword [0x4b1f50]
or ecx, 0xce2fbccc
mov dword [0x4b1f50], ecx
mov dword [esp + 0x14], eax
mov eax, dword [0x4a5730]
xor eax, 0x76d31b18
mov dword [0x4a5730], eax
jmp 0x406418
mov eax, dword [0x4ad3e0]
add eax, 0x325288c5
mov dword [0x4ad3e0], eax
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x50]
movzx eax, byte [esp + eax + 0x49]
mov edx, dword [esp + 0x38]
movsx eax, byte [edx + eax]
mov edx, esp
mov dword [edx], eax
call fcn.00418f90
sub esp, 4
mov ecx, dword [0x4afb64]
dec ecx
mov dword [0x4afb64], ecx
mov edx, dword [0x4ac77c]
inc edx
mov dword [0x4ac77c], edx
or ecx, edx
or ecx, 0x10ec
mov si, word [0x4a401e]
mov dx, si
sub edx, ecx
mov si, dx
mov word [0x4a401e], si
mov dword [esp + 0x10], eax
mov dword [0x4aa214], 0x69b29c32
mov eax, dword [esp + 0x50]
inc eax
mov dword [esp + 0x50], eax
mov dword [0x4b2480], 0x19dc34ad
jmp 0x4061db
jmp 0x40643f
cmp dword [esp + 0x54], 3
jge 0x40658c
mov eax, 0x8928b208
mov cx, word [0x4a4786]
movsx edx, cx
and edx, 0x14dcd1d9
cmp eax, edx
jg 0x406492
mov eax, dword [0x4ab8dc]
mov ecx, eax
inc ecx
mov dword [0x4ab8dc], ecx
mov ecx, 0x6904016b
sub ecx, eax
mov dx, word [0x49e2a6]
mov ax, dx
sub eax, ecx
mov dx, ax
mov word [0x49e2a6], dx
mov eax, dword [esp + 0x54]
inc eax
mov dword [esp + 0x54], eax
mov cx, word [0x4a2dc6]
mov ax, cx
or eax, 0x33fa
mov cx, ax
mov word [0x4a2dc6], cx
test byte [esp + 0x6f], 1
je 0x406523
mov ax, word [0x4a23d4]
movsx ecx, ax
and ecx, 0x6799fa82
cmp ecx, 0xac5c0af8
jl 0x4064f4
mov eax, dword [0x4aa1e0]
dec eax
mov dword [0x4aa1e0], eax
and eax, 0x846b
mov cx, ax
mov word [0x4a3350], cx
mov ecx, dword [esp + 0x70]
mov eax, esp
lea edx, [esp + 0x3d]
mov dword [eax], edx
call fcn.00430570
sub esp, 4
mov ecx, dword [0x4ab5d4]
imul ecx, ecx, 0xa4b05175
mov dword [0x4ab5d4], ecx
mov dword [esp + 0xc], eax
jmp 0x406578
mov eax, 0x717fb69d
mov ecx, dword [0x4ae89c]
cmp eax, ecx
jg 0x40654e
mov eax, dword [0x4af8f0]
mov ecx, 0x976b647d
sub ecx, eax
mov eax, dword [0x4a56b8]
sub eax, ecx
mov dword [0x4a56b8], eax
mov ecx, dword [esp + 0x70]
mov eax, esp
mov dword [eax], 0x3d
call fcn.00418f90
sub esp, 4
mov ecx, dword [0x4a851c]
or ecx, 0xadffb777
mov dword [0x4a851c], ecx
mov dword [esp + 8], eax
mov eax, dword [0x4aab94]
add eax, 0x12601116
mov dword [0x4aab94], eax
jmp 0x40643f
mov eax, 0x5d1c8d2b
mov ecx, dword [0x4acad0]
mov edx, ecx
dec edx
mov dword [0x4acad0], edx
and ecx, 0x10f24f44
mov edx, dword [0x4a6340]
inc edx
mov dword [0x4a6340], edx
and ecx, edx
cmp eax, ecx
jle 0x4065f2
mov eax, dword [0x4b1b64]
not eax
add eax, 0xb981d76
mov ecx, dword [0x4a4f28]
dec ecx
mov dword [0x4a4f28], ecx
add ecx, 0x9e82fbf7
cmp eax, ecx
jle 0x4065ed
mov word [0x4a1d28], 0x4f12
jmp 0x406601
mov eax, dword [0x4ae280]
xor eax, 0x8040200
mov dword [0x4ae280], eax
jmp 0x406606
mov eax, dword [0x4aaf74]
mov ecx, dword [0x4b0084]
sub eax, ecx
mov ecx, dword [0x4b1d48]
imul ecx, eax
mov dword [0x4b1d48], ecx
mov eax, dword [esp + 0x38]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0x41
call fcn.0044d6d0
mov dx, word [0x4a08f2]
mov ax, dx
or eax, 0xf2dd
mov dx, ax
mov word [0x4a08f2], dx
mov eax, esp
lea ecx, [esp + 0x45]
mov dword [eax], ecx
mov dword [eax + 4], 4
call fcn.004034a0
mov eax, dword [0x4acac4]
add eax, eax
mov ecx, dword [0x4b109c]
xor ecx, eax
mov dword [0x4b109c], ecx
mov eax, esp
lea ecx, [esp + 0x41]
mov dword [eax], ecx
mov dword [eax + 4], 4
call fcn.004034a0
mov eax, dword [0x4a662c]
mov ecx, eax
inc ecx
mov dword [0x4a662c], ecx
xor eax, 0x752c6637
mov ecx, dword [0x4aa748]
sub ecx, eax
mov dword [0x4aa748], ecx
mov eax, esp
lea ecx, [esp + 0x3d]
mov dword [eax], ecx
mov dword [eax + 4], 4
call fcn.004034a0
mov dx, word [0x49fd16]
movsx eax, dx
imul eax, eax, 0x26b5cc31
mov dword [0x4a4a6c], eax
add esp, 0x74
pop esi
pop edi
ret