Function at 0x41e390
Capabilities:
Encode data using base64

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x80
mov eax, dword [esp + 0xa0]
mov cl, byte [esp + 0x9c]
mov edx, dword [esp + 0x98]
mov esi, dword [esp + 0x94]
mov dword [esp + 0x7c], eax
and cl, 1
mov byte [esp + 0x7b], cl
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], esi
mov di, word [0x497a4e]
mov ax, di
inc eax
mov bx, ax
mov word [0x497a4e], bx
movsx eax, di
mov edx, dword [0x494088]
inc edx
mov dword [0x494088], edx
mov di, word [0x499598]
mov si, di
dec esi
mov bx, si
mov word [0x499598], bx
movsx esi, di
sub edx, esi
xor edx, 0x54f1fdd3
cmp eax, edx
jl 0x41e438
mov eax, dword [0x495844]
mov ecx, dword [0x49462c]
imul ecx, ecx, 0x192cab80
or eax, ecx
mov ecx, dword [0x492670]
imul ecx, eax
mov dword [0x492670], ecx
mov eax, dword [0x493d8c]
mov ecx, eax
inc ecx
mov dword [0x493d8c], ecx
mov ecx, dword [0x495e94]
lea eax, [eax + ecx*2 + 1]
mov ecx, dword [0x4932d8]
sar ecx, 1
sub ecx, 0xa7ac0285
or ecx, 0x7a570d3f
cmp eax, ecx
jne 0x41e4c6
mov eax, dword [0x496dc8]
dec eax
mov dword [0x496dc8], eax
imul eax, eax, 0x4e84d558
or eax, 0x57531b52
cmp eax, 0x19f2dd00
je 0x41e4b1
mov eax, 0xff0808e4
mov ecx, dword [0x495704]
xor ecx, 0x2b6ae0db
cmp eax, ecx
je 0x41e4ac
jmp 0x41e4ac
jmp 0x41e4c1
mov eax, dword [0x4922fc]
imul eax, eax, 0x6879bc2
mov dword [0x4922fc], eax
jmp 0x41e4c6
mov eax, 0xfc5f5f55
mov ecx, 0x5e977f3
mov dx, word [0x4988dc]
mov si, dx
add esi, 0x40656e14
mov dx, si
mov word [0x4988dc], dx
mov word [0x4975be], 0x24ad
mov dword [esp + 0x60], 0
mov dx, word [0x498c4e]
movsx esi, dx
sar esi, 6
mov edi, 0x40f10b4
sub edi, esi
mov esi, dword [0x494ccc]
and esi, edi
mov dword [0x494ccc], esi
mov dword [esp + 0x5c], 0
mov esi, dword [0x494ffc]
mov edi, dword [0x493224]
mov ebx, edi
inc ebx
mov dword [0x493224], ebx
sub ecx, edi
xor esi, ecx
cmp eax, esi
jge 0x41e581
mov eax, dword [0x496180]
xor eax, 0xffffffff
cmp eax, 0x231e337f
jg 0x41e56d
mov eax, dword [0x493878]
or eax, 0x8a2af7c1
mov dword [0x493878], eax
jmp 0x41e57c
mov eax, dword [0x494ef8]
and eax, 0xc7eaff77
mov dword [0x494ef8], eax
jmp 0x41e581
mov eax, esp
mov dword [eax + 4], 0x41
mov dword [eax], 0x1424
call fcn.0044bdb0
mov dword [esp + 0x44], eax
mov dword [0x496c24], 0xf37bd0b1
mov eax, esp
mov dword [eax + 4], 4
mov dword [eax], 0x1467
call fcn.0044bdb0
mov dword [esp + 0x6c], eax
mov eax, dword [0x493314]
add eax, 0x8727563a
mov dword [0x493314], eax
mov eax, dword [esp + 0x6c]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x51]
mov dword [ecx], eax
call fcn.004564c0
mov ecx, dword [0x492794]
add ecx, 0xd1aa2261
mov dword [0x492794], ecx
mov ecx, esp
mov dword [ecx + 4], 4
mov dword [ecx], 0x34b
mov dword [esp + 0x40], eax
call fcn.0044bdb0
mov dword [esp + 0x68], eax
mov dx, word [0x4994e0]
mov ax, dx
and eax, 0x455f
mov dx, ax
mov word [0x4994e0], dx
mov eax, dword [esp + 0x6c]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 4
call fcn.004019a0
mov eax, dword [0x494274]
or eax, 0xa79bd4da
cmp eax, 0x124a0283
jge 0x41e65e
mov eax, dword [0x4970c0]
imul eax, eax, 0x33cb3978
mov dword [0x4970c0], eax
mov eax, dword [esp + 0x68]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x4d]
mov dword [ecx], eax
call fcn.004564c0
mov ecx, dword [0x492308]
mov dx, word [0x498582]
mov si, dx
add esi, ecx
mov dx, si
mov word [0x498582], dx
mov ecx, esp
mov dword [ecx + 4], 4
mov dword [ecx], 0x12d5
mov dword [esp + 0x3c], eax
call fcn.0044bdb0
mov dword [esp + 0x64], eax
mov eax, dword [0x492180]
imul eax, eax, 0xa24831ff
mov dword [0x492180], eax
mov eax, dword [esp + 0x68]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 4
call fcn.004019a0
mov dx, word [0x498302]
mov ax, dx
inc eax
mov dx, ax
mov word [0x498302], dx
movsx eax, dx
mov ecx, 0x93269db7
sub ecx, eax
mov eax, dword [0x49377c]
sub eax, ecx
mov dword [0x49377c], eax
mov eax, dword [esp + 0x64]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x49]
mov dword [ecx], eax
call fcn.004564c0
mov ecx, dword [0x492248]
and ecx, 0xed7c1a90
mov dword [0x492248], ecx
mov ecx, dword [esp + 0x64]
mov esi, esp
mov dword [esi + 4], ecx
mov dword [esi], 4
mov dword [esp + 0x38], eax
call fcn.004019a0
mov eax, dword [0x49406c]
mov ecx, dword [0x494420]
sub ecx, eax
mov dword [0x494420], ecx
cmp dword [esp + 0x74], 0
je 0x41ee0c
mov eax, 0x914d1dee
mov ecx, dword [0x494a28]
sar ecx, 8
mov edx, dword [0x49639c]
sar edx, 2
and ecx, edx
or ecx, 0x19d73ac1
cmp eax, ecx
jl 0x41e799
mov ax, word [0x497e34]
mov cx, ax
xor ecx, 0xcf5e
mov ax, cx
mov word [0x497e34], ax
jmp 0x41e7c9
mov eax, dword [0x494f30]
mov cx, word [0x4977e6]
mov dx, cx
not edx
imul eax, edx
and eax, 0x28
shl eax, 0xa
mov cx, word [0x4995bc]
mov dx, cx
or edx, eax
mov cx, dx
mov word [0x4995bc], cx
mov eax, dword [esp + 0x74]
dec eax
mov dword [esp + 0x74], eax
mov eax, dword [0x495010]
add eax, 0x9898f9c7
mov dword [0x495010], eax
mov eax, dword [esp + 0x70]
mov cl, byte [eax]
mov eax, dword [esp + 0x60]
mov byte [esp + eax + 0x59], cl
mov dword [0x494078], 0x3ff12d7
mov eax, dword [esp + 0x60]
inc eax
mov dword [esp + 0x60], eax
mov eax, dword [0x495480]
and eax, 0xd4a8a5af
mov dword [0x495480], eax
mov eax, dword [esp + 0x70]
inc eax
mov dword [esp + 0x70], eax
mov dword [0x492cf8], 0xac905766
cmp dword [esp + 0x60], 3
jne 0x41edb7
mov eax, 0x9ab886ac
mov cx, word [0x499b66]
mov dx, cx
imul edx, edx, 0xbf7fdfff
mov cx, dx
mov word [0x499b66], cx
movzx edx, byte [esp + 0x59]
shr edx, 2
mov bl, dl
mov byte [esp + 0x55], bl
mov edx, dword [0x495298]
or edx, 0x232674e0
mov dword [0x495298], edx
movzx edx, byte [esp + 0x59]
and edx, 3
shl edx, 4
mov bl, dl
mov byte [esp + 0x56], bl
mov edx, dword [0x493a34]
shl edx, 5
mov esi, dword [0x495030]
sar esi, 5
xor edx, esi
mov esi, dword [0x492090]
xor esi, edx
mov dword [0x492090], esi
movzx edx, byte [esp + 0x5a]
shr edx, 4
movzx esi, byte [esp + 0x56]
add esi, edx
mov edx, esi
mov bl, dl
mov byte [esp + 0x56], bl
mov edx, dword [0x495488]
mov esi, edx
inc esi
mov dword [0x495488], esi
add edx, 0xb0399df3
and edx, 0xaeaf8235
cmp eax, edx
je 0x41e8fe
mov eax, dword [0x492508]
shl eax, 5
mov cx, word [0x4990ba]
mov dx, cx
add edx, eax
mov cx, dx
mov word [0x4990ba], cx
jmp 0x41e90d
mov eax, dword [0x4967d8]
and eax, 0xabb99d1a
mov dword [0x4967d8], eax
movzx eax, byte [esp + 0x5a]
and eax, 0xf
shl eax, 2
mov cl, al
mov byte [esp + 0x57], cl
mov eax, dword [0x4934a0]
shl eax, 7
mov edx, dword [0x494750]
dec edx
mov dword [0x494750], edx
sub eax, edx
xor eax, 0x94e
mov si, word [0x499878]
mov dx, si
and edx, eax
mov si, dx
mov word [0x499878], 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 [0x495c74]
mov edx, eax
inc edx
mov dword [0x495c74], edx
mov edx, 0x9f670eb3
sub edx, eax
mov si, word [0x49811e]
mov ax, si
imul eax, edx
mov si, ax
mov word [0x49811e], si
movzx eax, byte [esp + 0x5b]
and eax, 0x3f
mov cl, al
mov byte [esp + 0x58], cl
mov eax, dword [0x496424]
dec eax
mov dword [0x496424], eax
imul eax, eax, 0xb58a85d0
mov edx, dword [0x4955ac]
mov edi, edx
inc edi
mov dword [0x4955ac], edi
imul edx, edx, 0xa771fc58
mov edi, dword [0x493dc4]
sar edi, 0xa
and edx, edi
cmp eax, edx
jne 0x41e9e7
mov eax, dword [0x491cfc]
xor eax, 0xb37aec0f
mov dword [0x491cfc], eax
mov dword [esp + 0x60], 0
mov eax, dword [0x4956cc]
and eax, 0x469420d0
mov dword [0x4956cc], eax
cmp dword [esp + 0x60], 4
je 0x41ed8d
mov eax, 0x1ad8aa2a
mov ecx, dword [0x496e00]
mov edx, ecx
inc edx
mov dword [0x496e00], edx
cmp eax, ecx
jg 0x41ea4a
mov eax, dword [0x495c80]
mov ecx, eax
dec ecx
mov dword [0x495c80], ecx
mov ecx, dword [0x4927a4]
and eax, ecx
and eax, 0xa5d6559c
mov dword [0x4927a4], eax
jmp 0x41eaad
mov eax, 0xbc423929
mov ecx, dword [0x492884]
or ecx, 0xd2cb1e9c
cmp eax, ecx
jne 0x41ea8f
mov eax, 0x9bd2f9d0
mov ecx, dword [0x4969a0]
not ecx
mov edx, dword [0x49674c]
and ecx, edx
cmp eax, ecx
jge 0x41ea85
jmp 0x41ea8a
jmp 0x41ea8a
jmp 0x41eaa8
mov eax, dword [0x49408c]
imul eax, eax, 0x897d08b1
mov ecx, dword [0x495d68]
xor ecx, eax
mov dword [0x495d68], ecx
jmp 0x41eaad
test byte [esp + 0x7b], 1
je 0x41ec76
mov eax, dword [esp + 0x60]
movzx eax, byte [esp + eax + 0x55]
cmp eax, 0x3d
jle 0x41ec76
mov eax, 0xcab75b57
mov ecx, dword [0x494294]
xor ecx, 0xe83d1e31
cmp eax, ecx
jne 0x41eafe
mov eax, dword [0x492930]
sar eax, 4
mov ecx, dword [0x495794]
add ecx, eax
mov dword [0x495794], ecx
jmp 0x41eb27
mov eax, dword [0x491dfc]
sar eax, 6
mov cx, word [0x499a5a]
movsx edx, cx
add edx, 0x99bf6bd7
xor eax, edx
mov edx, dword [0x495264]
imul edx, eax
mov dword [0x495264], edx
mov eax, dword [esp + 0x60]
movzx eax, byte [esp + eax + 0x55]
cmp eax, 0x3e
jne 0x41ebf6
mov eax, 0xfcc92f71
mov ecx, dword [0x49703c]
inc ecx
mov dword [0x49703c], ecx
mov edx, dword [0x49641c]
xor edx, ecx
mov dword [0x49641c], edx
mov ecx, dword [esp + 0x7c]
mov edx, esp
lea esi, [esp + 0x51]
mov dword [edx], esi
mov dword [esp + 0x34], eax
call fcn.00415b40
sub esp, 4
mov ecx, dword [0x4946cc]
not ecx
mov di, word [0x498bea]
mov dx, di
dec edx
mov di, dx
mov word [0x498bea], di
movsx edx, di
add ecx, edx
mov edx, dword [esp + 0x34]
cmp edx, ecx
mov dword [esp + 0x30], eax
jne 0x41ebf1
mov eax, dword [0x4944cc]
dec eax
mov dword [0x4944cc], eax
mov ecx, dword [0x49380c]
dec ecx
mov dword [0x49380c], ecx
imul ecx, ecx, 0x79149711
or ecx, 0x8c5b408a
cmp eax, ecx
jl 0x41ebec
mov eax, 0xba808382
mov ecx, dword [0x496800]
cmp eax, ecx
jle 0x41ebe7
jmp 0x41ebe7
jmp 0x41ebec
jmp 0x41ebf1
jmp 0x41ec51
mov eax, dword [0x494e44]
mov ecx, eax
inc ecx
mov dword [0x494e44], ecx
mov dx, word [0x498be4]
mov cx, dx
lea eax, [eax + ecx + 0x781b3321]
mov dx, ax
mov word [0x498be4], dx
mov ecx, dword [esp + 0x7c]
mov eax, esp
lea esi, [esp + 0x4d]
mov dword [eax], esi
call fcn.00415b40
sub esp, 4
mov dx, word [0x4995a8]
mov cx, dx
add ecx, 0x887faeac
mov dx, cx
mov word [0x4995a8], dx
mov dword [esp + 0x2c], eax
mov ax, word [0x498d6a]
movsx ecx, ax
sar ecx, 4
xor ecx, 0x6d04ac29
mov edx, dword [0x493cb0]
add edx, ecx
mov dword [0x493cb0], edx
jmp 0x41ed4a
mov eax, dword [0x491e8c]
xor eax, 0xffffffff
or eax, 0x4982751f
cmp eax, 0x25b478df
je 0x41ecad
mov eax, dword [0x493b50]
dec eax
mov dword [0x493b50], eax
imul eax, eax, 0x5f83dadf
mov ecx, dword [0x494748]
sub ecx, eax
mov dword [0x494748], ecx
mov eax, 0xa8bbb75e
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x60]
movzx edx, byte [esp + edx + 0x55]
mov esi, dword [esp + 0x44]
movsx edx, byte [esi + edx]
mov esi, esp
mov dword [esi], edx
mov dword [esp + 0x28], eax
call fcn.0041a010
sub esp, 4
mov ecx, dword [0x4960e0]
mov edx, ecx
inc edx
mov dword [0x4960e0], edx
mov edx, dword [esp + 0x28]
cmp edx, ecx
mov dword [esp + 0x24], eax
jle 0x41ed0a
mov eax, dword [0x49670c]
xor eax, 0x1aa3fc66
mov dword [0x49670c], eax
jmp 0x41ed45
mov eax, dword [0x4940e8]
mov ecx, eax
inc ecx
mov dword [0x4940e8], ecx
add eax, 0xd807a2a4
mov dx, word [0x49835e]
mov cx, dx
inc ecx
mov si, cx
mov word [0x49835e], si
movsx ecx, dx
or eax, ecx
mov ecx, dword [0x4940d0]
xor ecx, eax
mov dword [0x4940d0], ecx
jmp 0x41ed4a
mov ax, word [0x497592]
movsx ecx, ax
and ecx, 0x7b3d03c9
mov edx, dword [0x496aa4]
add edx, ecx
mov dword [0x496aa4], edx
mov ecx, dword [esp + 0x60]
inc ecx
mov dword [esp + 0x60], ecx
mov ax, word [0x498808]
mov cx, ax
or ecx, 0x98c1
mov ax, cx
mov word [0x498808], ax
jmp 0x41e9fe
mov dword [0x492b5c], 0xce1c9423
mov dword [esp + 0x60], 0
mov ax, word [0x499070]
mov cx, ax
add ecx, 0x45bf43cf
mov ax, cx
mov word [0x499070], ax
mov eax, dword [0x49495c]
inc eax
mov dword [0x49495c], eax
imul eax, eax, 0xf46e39c
xor eax, 0xff9abb3a
cmp eax, 0xfe47c7f8
jne 0x41ee07
mov ax, word [0x498632]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x498632], ax
movsx ecx, ax
and ecx, 0x44908ac0
mov edx, dword [0x495f00]
lea ecx, [edx + ecx - 0x7c9b8bc5]
mov dword [0x495f00], ecx
jmp 0x41e74a
mov eax, dword [0x493a6c]
and eax, 0x934991c6
mov dword [0x493a6c], eax
cmp dword [esp + 0x60], 0
je 0x41f4f2
mov eax, dword [0x493724]
add eax, 0xb59dbeca
mov ecx, dword [0x495dbc]
xor eax, ecx
xor eax, 0xa2a42548
mov dword [0x495dbc], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x5c], eax
mov eax, dword [0x4925b8]
xor eax, 0xc1179ea6
mov dword [0x4925b8], eax
cmp dword [esp + 0x5c], 3
jge 0x41ef34
mov eax, 0xe8719d56
mov ecx, dword [0x49574c]
mov dx, word [0x497d2a]
mov si, dx
and ecx, esi
and ecx, 0xb406
mov dx, cx
mov word [0x497d2a], dx
mov ecx, dword [esp + 0x5c]
mov byte [esp + ecx + 0x59], 0
mov dx, word [0x4998b6]
movsx ecx, dx
cmp eax, ecx
jle 0x41eeed
mov eax, 0xda2abfcf
mov ecx, dword [0x492070]
not ecx
add ecx, 0x691a5ca8
mov edx, dword [0x493404]
and ecx, edx
cmp eax, ecx
jl 0x41eee8
mov eax, dword [0x493e38]
not eax
imul eax, eax, 0xbc32782
mov ecx, dword [0x492d80]
or eax, ecx
or eax, 0x33a7069a
mov dword [0x492d80], eax
jmp 0x41eeed
mov eax, dword [esp + 0x5c]
inc eax
mov dword [esp + 0x5c], eax
mov eax, dword [0x492b50]
mov ecx, dword [0x492fec]
and ecx, 0x1f784636
or eax, ecx
cmp eax, 0x3988bcfc
je 0x41ef2f
mov eax, dword [0x4929f4]
mov cx, word [0x4998ba]
mov dx, cx
xor edx, eax
mov cx, dx
mov word [0x4998ba], cx
jmp 0x41ee59
mov eax, 0x3125035e
mov ecx, dword [0x494acc]
add ecx, 0xafe02272
xor ecx, 0xf6288a42
mov edx, dword [0x4943d0]
or edx, ecx
mov dword [0x4943d0], edx
movzx ecx, byte [esp + 0x59]
shr ecx, 2
mov bl, cl
mov byte [esp + 0x55], bl
mov word [0x4993d6], 0x9286
movzx ecx, byte [esp + 0x59]
and ecx, 3
shl ecx, 4
mov bl, cl
mov byte [esp + 0x56], bl
mov si, word [0x497302]
movsx ecx, si
shr ecx, 5
and ecx, 0xceb5
mov si, word [0x4981f8]
mov dx, si
or edx, ecx
mov si, dx
mov word [0x4981f8], si
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 ecx, dword [0x492094]
shl ecx, 4
mov edx, 0xd2814c72
sub edx, ecx
xor edx, 0xacd2a945
mov dword [0x4936d0], edx
movzx ecx, byte [esp + 0x5a]
and ecx, 0xf
shl ecx, 2
mov bl, cl
mov byte [esp + 0x57], bl
mov ecx, dword [0x49414c]
mov si, word [0x49760e]
mov dx, si
mov edi, edx
dec edi
mov si, di
mov word [0x49760e], si
and ecx, edx
xor ecx, 0xa1d3
mov si, cx
mov word [0x498f9a], si
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 si, word [0x497d74]
mov cx, si
dec ecx
mov bp, cx
mov word [0x497d74], bp
movsx ecx, si
add ecx, 0xadbec27d
mov edx, dword [0x49567c]
or edx, ecx
mov dword [0x49567c], edx
movzx ecx, byte [esp + 0x5b]
and ecx, 0x3f
mov bl, cl
mov byte [esp + 0x58], bl
mov ecx, dword [0x4953fc]
or ecx, 0xafc621e
cmp eax, ecx
jne 0x41f0a5
mov eax, dword [0x4962e8]
mov ecx, eax
dec ecx
mov dword [0x4962e8], ecx
add eax, 0x66d4a07e
mov ecx, dword [0x495774]
imul ecx, eax
mov dword [0x495774], ecx
jmp 0x41f0bd
mov ax, word [0x497fbc]
mov cx, ax
add ecx, 0xccc72b9
mov ax, cx
mov word [0x497fbc], ax
mov dword [esp + 0x5c], 0
mov eax, dword [0x493230]
mov ecx, eax
inc ecx
mov dword [0x493230], ecx
xor eax, 0xf0c94e01
mov ecx, dword [0x4952b8]
or ecx, eax
mov dword [0x4952b8], ecx
mov eax, dword [0x491e64]
mov ecx, dword [0x496d70]
add ecx, 0x697fcfc6
xor eax, ecx
not eax
mov dx, ax
mov word [0x4993f0], dx
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x60]
jle 0x41f143
mov ax, word [0x4990de]
mov cx, ax
inc ecx
mov dx, cx
mov word [0x4990de], dx
movsx ecx, ax
and ecx, 0xb9f5798c
mov esi, dword [0x493324]
sub esi, ecx
mov dword [0x493324], esi
jmp 0x41f32c
mov ax, word [0x4975a2]
mov cx, ax
inc ecx
mov dx, cx
mov word [0x4975a2], dx
movsx ecx, ax
add ecx, 0x44be7c2d
or ecx, 0x1f27dd3f
mov dword [0x492778], ecx
test byte [esp + 0x7b], 1
je 0x41f2ab
mov eax, dword [esp + 0x5c]
movzx eax, byte [esp + eax + 0x55]
cmp eax, 0x3d
jle 0x41f2ab
mov eax, dword [0x4933b4]
mov ecx, 0x4c41b121
sub ecx, eax
mov eax, dword [0x4961b4]
add ecx, eax
mov eax, dword [0x49705c]
sub eax, ecx
mov dword [0x49705c], eax
mov eax, dword [esp + 0x5c]
movzx eax, byte [esp + eax + 0x55]
cmp eax, 0x3e
jne 0x41f213
mov eax, dword [0x4950c4]
sar eax, 0xa
mov ecx, dword [0x4954c8]
add ecx, eax
mov dword [0x4954c8], ecx
mov ecx, dword [esp + 0x7c]
mov eax, esp
lea edx, [esp + 0x51]
mov dword [eax], edx
call fcn.00415b40
sub esp, 4
mov si, word [0x498338]
mov cx, si
or ecx, 0xe4be
mov si, word [0x4994ec]
mov dx, si
xor edx, ecx
mov si, dx
mov word [0x4994ec], si
mov dword [esp + 0x20], eax
jmp 0x41f267
mov ax, word [0x499464]
mov cx, ax
inc ecx
mov dx, cx
mov word [0x499464], dx
movsx ecx, ax
mov esi, dword [0x497038]
lea ecx, [ecx + esi - 0x72b401e2]
mov dword [0x497038], ecx
mov ecx, dword [esp + 0x7c]
mov esi, esp
lea edi, [esp + 0x4d]
mov dword [esi], edi
call fcn.00415b40
sub esp, 4
mov ecx, dword [0x493a3c]
add ecx, 0x9588effe
mov dword [0x493a3c], ecx
mov dword [esp + 0x1c], eax
mov eax, 0x46dd96f2
mov ecx, dword [0x494368]
mov edx, dword [0x495854]
inc edx
mov dword [0x495854], edx
or ecx, edx
cmp eax, ecx
jg 0x41f2a6
mov eax, dword [0x4948d0]
add eax, 0x998fa0fe
xor eax, 0xf1c979d3
mov ecx, dword [0x4946c4]
or ecx, eax
mov dword [0x4946c4], ecx
jmp 0x41f2f1
mov eax, dword [0x493960]
add eax, 0x3b5b2dea
mov dword [0x493960], eax
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.0041a010
sub esp, 4
mov ecx, dword [0x492df0]
and ecx, 0xe926405a
mov dword [0x492df0], ecx
mov dword [esp + 0x18], eax
mov eax, dword [0x496588]
add eax, 0xbe8d33a3
mov dword [0x496588], eax
mov eax, dword [esp + 0x5c]
inc eax
mov dword [esp + 0x5c], eax
mov cx, word [0x49996c]
movsx eax, cx
add eax, 0x44971047
mov edx, dword [0x496118]
imul edx, eax
mov dword [0x496118], edx
jmp 0x41f0e6
jmp 0x41f331
cmp dword [esp + 0x60], 3
jge 0x41f4e3
mov ax, word [0x497bf4]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x497bf4], ax
movsx ecx, ax
mov edx, dword [0x4924a8]
or ecx, edx
or ecx, 0x61000040
mov dword [0x4924a8], ecx
mov ecx, dword [esp + 0x60]
inc ecx
mov dword [esp + 0x60], ecx
mov ecx, dword [0x494e2c]
imul ecx, ecx, 0x1982ff34
mov dword [0x494e2c], ecx
test byte [esp + 0x7b], 1
je 0x41f452
mov eax, 0x393b8144
mov ecx, dword [0x49507c]
mov edx, ecx
dec edx
mov dword [0x49507c], edx
cmp eax, ecx
jl 0x41f3bc
mov eax, dword [0x492270]
add eax, 0x654ebe0b
mov dword [0x492270], eax
jmp 0x41f3fe
mov ax, word [0x49816a]
mov cx, ax
mov edx, ecx
dec edx
mov ax, dx
mov word [0x49816a], ax
imul ecx, ecx, 0xdb9b4ff0
mov edx, dword [0x492b00]
mov esi, edx
inc esi
mov dword [0x492b00], esi
lea ecx, [ecx + edx + 1]
mov ax, word [0x499abc]
mov dx, ax
add edx, ecx
mov ax, dx
mov word [0x499abc], ax
mov ecx, dword [esp + 0x7c]
mov eax, esp
lea edx, [esp + 0x49]
mov dword [eax], edx
call fcn.00415b40
sub esp, 4
mov si, word [0x4997aa]
movsx ecx, si
imul ecx, ecx, 0x34f2f6d1
mov si, word [0x4972b2]
movsx edx, si
imul edx, edx, 0x8482d045
cmp ecx, edx
mov dword [esp + 0x14], eax
jg 0x41f44d
mov eax, dword [0x493a64]
add eax, 0x833fded7
mov dword [0x493a64], eax
jmp 0x41f4be
mov eax, 0xfbf5edd4
mov ecx, dword [0x496f34]
xor ecx, 0xfaea14ee
mov dword [0x496f34], ecx
mov ecx, dword [esp + 0x7c]
mov edx, esp
mov dword [edx], 0x3d
mov dword [esp + 0x10], eax
call fcn.0041a010
sub esp, 4
mov ecx, dword [0x495dd0]
mov edx, ecx
inc edx
mov dword [0x495dd0], edx
or ecx, 0xd8155ecc
mov edx, dword [esp + 0x10]
cmp edx, ecx
mov dword [esp + 0xc], eax
jge 0x41f4b9
mov eax, dword [0x4961d0]
mov ecx, dword [0x495c84]
xor ecx, eax
mov dword [0x495c84], ecx
jmp 0x41f4be
mov eax, dword [0x495524]
mov ecx, dword [0x492e0c]
mov edx, ecx
inc edx
mov dword [0x492e0c], edx
add eax, ecx
xor eax, 0xab7d6123
mov dword [0x492af8], eax
jmp 0x41f331
mov eax, dword [0x494ad8]
add eax, 0x80006000
mov dword [0x494ad8], eax
mov eax, 0x202e80d
mov ecx, dword [0x4940fc]
or ecx, 0x1d6253e5
mov dword [0x4940fc], ecx
mov ecx, dword [esp + 0x44]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x41
mov dword [esp + 8], eax
call fcn.004019a0
mov si, word [0x4981e8]
mov ax, si
add eax, 0x74eb9ffa
mov si, ax
mov word [0x4981e8], si
mov eax, esp
lea ecx, [esp + 0x51]
mov dword [eax], ecx
mov dword [eax + 4], 4
call fcn.00407960
mov eax, dword [0x494488]
shr eax, 9
mov ecx, 0xbd06e214
sub ecx, eax
or ecx, 0x8164
mov si, cx
mov word [0x4979c0], si
mov eax, esp
lea ecx, [esp + 0x4d]
mov dword [eax], ecx
mov dword [eax + 4], 4
call fcn.00407960
mov si, word [0x498956]
mov ax, si
inc eax
mov si, ax
mov word [0x498956], si
movsx eax, si
mov ecx, dword [esp + 8]
cmp ecx, eax
jl 0x41f5c9
mov eax, dword [0x493cd8]
inc eax
mov dword [0x493cd8], eax
imul eax, eax, 0x4dbb40a6
and eax, 0xb8449be2
mov ecx, dword [0x4938ec]
sub ecx, eax
mov dword [0x4938ec], ecx
mov eax, esp
lea ecx, [esp + 0x49]
mov dword [eax], ecx
mov dword [eax + 4], 4
call fcn.00407960
mov eax, dword [0x493360]
and eax, 0x5b8dc13d
mov dword [0x493360], eax
add esp, 0x80
pop esi
pop edi
pop ebx
pop ebp
ret