Function at 0x41fac0
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 [0x497fec]
dec eax
mov dword [0x497fec], eax
mov dword [0x49e7a4], eax
mov di, word [0x4a6a04]
movsx eax, di
mov edx, dword [0x49aad4]
or eax, edx
or eax, 0x5aebec7a
mov dword [0x49aad4], eax
mov eax, dword [0x49afe8]
imul eax, eax, 0xb28b78b2
or eax, 0x4f7d3b54
mov dword [0x49b118], eax
mov word [0x4a65d4], 0x62
mov dword [esp + 0x60], 0
mov eax, dword [0x4a198c]
mov edx, eax
inc edx
mov dword [0x4a198c], edx
add eax, 0x4ed11015
mov edx, dword [0x49dd04]
xor eax, edx
mov edx, dword [0x4a2554]
mov esi, edx
dec esi
mov dword [0x4a2554], esi
xor edx, 0x5bbd8d6
cmp eax, edx
jg 0x41fb9b
mov eax, dword [0x49d8ac]
dec eax
mov dword [0x49d8ac], eax
mov ecx, dword [0x49fed8]
sub ecx, eax
mov dword [0x49fed8], ecx
mov dword [esp + 0x5c], 0
mov eax, dword [0x4988f4]
and eax, 0x7ddf8940
mov dword [0x4988f4], eax
mov eax, esp
mov dword [eax + 4], 0x41
mov dword [eax], 0x73a
call fcn.004136b0
mov dword [esp + 0x44], eax
mov eax, dword [0x49a43c]
imul eax, eax, 0x3c56b9c0
mov dword [0x49ebec], eax
mov eax, esp
mov dword [eax + 4], 4
mov dword [eax], 0xeec
call fcn.004136b0
mov dword [esp + 0x6c], eax
mov eax, dword [0x499d9c]
xor eax, 0xa682ca20
mov dword [0x499d9c], eax
mov eax, dword [esp + 0x6c]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x51]
mov dword [ecx], eax
call fcn.00454dc0
mov ecx, dword [0x49fd9c]
add ecx, 0xd6ebe665
mov dword [0x49fd9c], ecx
mov ecx, esp
mov dword [ecx + 4], 4
mov dword [ecx], 0xee0
mov dword [esp + 0x40], eax
call fcn.004136b0
mov dword [esp + 0x68], eax
mov eax, dword [0x49bb28]
mov ecx, eax
dec ecx
mov dword [0x49bb28], ecx
xor eax, 0xa2b506f5
mov ecx, dword [0x49a3cc]
imul ecx, eax
mov dword [0x49a3cc], ecx
mov eax, dword [esp + 0x6c]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 4
call fcn.0041ef40
mov eax, dword [0x49a128]
xor eax, 0xdfd87d00
mov dword [0x49a128], eax
mov eax, dword [esp + 0x68]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x4d]
mov dword [ecx], eax
call fcn.00454dc0
mov ecx, dword [0x49aee8]
and ecx, 0x46f584a1
mov dword [0x49aee8], ecx
mov ecx, esp
mov dword [ecx + 4], 4
mov dword [ecx], 0x13ea
mov dword [esp + 0x3c], eax
call fcn.004136b0
mov dword [esp + 0x64], eax
mov eax, dword [0x49db7c]
imul eax, eax, 0xfa7a0b25
xor eax, 0x39fd7405
mov ecx, dword [0x497eb0]
and ecx, 0xfd5fe4b1
cmp eax, ecx
jne 0x41fd19
mov ax, word [0x4a427c]
mov cx, ax
dec ecx
mov dx, cx
mov word [0x4a427c], dx
movsx ecx, ax
and ecx, 0xc526179b
mov esi, dword [0x498cfc]
add esi, ecx
mov dword [0x498cfc], esi
mov eax, dword [esp + 0x68]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 4
call fcn.0041ef40
mov dword [0x4980fc], 0x268b3366
mov eax, dword [esp + 0x64]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x49]
mov dword [ecx], eax
call fcn.00454dc0
mov ecx, dword [0x49d9c4]
xor ecx, 0x199
mov dx, word [0x4a68de]
mov si, dx
and esi, ecx
mov dx, si
mov word [0x4a68de], dx
mov ecx, dword [esp + 0x64]
mov esi, esp
mov dword [esi + 4], ecx
mov dword [esi], 4
mov dword [esp + 0x38], eax
call fcn.0041ef40
mov eax, dword [0x49c608]
or eax, 0xda8fcebf
mov dword [0x49c608], eax
cmp dword [esp + 0x74], 0
je 0x420358
mov dword [0x499b44], 0x84505804
mov eax, dword [esp + 0x74]
dec eax
mov dword [esp + 0x74], eax
mov cx, word [0x4a4570]
movsx eax, cx
imul eax, eax, 0xd8e1b395
mov cx, word [0x4a7de4]
movsx edx, cx
xor eax, edx
mov edx, dword [0x498ed8]
xor edx, eax
mov dword [0x498ed8], edx
mov eax, dword [esp + 0x70]
mov bl, byte [eax]
mov eax, dword [esp + 0x60]
mov byte [esp + eax + 0x59], bl
mov eax, dword [0x4a0514]
sar eax, 0xa
and eax, 0x6e4a32aa
mov edx, dword [0x4a0c5c]
xor edx, eax
mov dword [0x4a0c5c], edx
mov eax, dword [esp + 0x60]
inc eax
mov dword [esp + 0x60], eax
mov eax, dword [0x4a28a4]
and eax, 0x92607a4d
or eax, 0x1034d95e
cmp eax, 0xd9b07c12
jg 0x41fe7d
mov eax, dword [0x499fe0]
sar eax, 2
mov ecx, 0x65fca77e
sub ecx, eax
mov eax, dword [0x49ef04]
add eax, 0xa8fb02e5
mov dx, word [0x4a742a]
movsx esi, dx
and eax, esi
cmp ecx, eax
jne 0x41fe78
mov ax, word [0x4a631c]
mov cx, ax
xor ecx, 0xd540
mov ax, word [0x4a81be]
mov dx, ax
and edx, ecx
mov ax, dx
mov word [0x4a81be], ax
jmp 0x41fe8c
mov eax, dword [0x49c7d4]
or eax, 0xffb9d3e3
mov dword [0x49c7d4], eax
mov eax, dword [esp + 0x70]
inc eax
mov dword [esp + 0x70], eax
mov eax, dword [0x49be8c]
imul eax, eax, 0x32d2b11
mov dword [0x49be8c], eax
cmp dword [esp + 0x60], 3
jne 0x420344
mov eax, dword [0x49d9e8]
or eax, 0xa6f78007
mov dword [0x49d9e8], eax
movzx eax, byte [esp + 0x59]
shr eax, 2
mov cl, al
mov byte [esp + 0x55], cl
mov dword [0x49bf54], 0xd36a1b2f
movzx eax, byte [esp + 0x59]
and eax, 3
shl eax, 4
mov cl, al
mov byte [esp + 0x56], cl
mov dx, word [0x4a370a]
mov ax, dx
inc eax
mov dx, ax
mov word [0x4a370a], dx
movsx eax, dx
mov esi, 0x95515cea
sub esi, eax
and esi, 0x704199a6
mov eax, dword [0x499a28]
imul eax, esi
mov dword [0x499a28], eax
movzx eax, byte [esp + 0x5a]
shr eax, 4
movzx esi, byte [esp + 0x56]
add esi, eax
mov eax, esi
mov cl, al
mov byte [esp + 0x56], cl
mov eax, dword [0x49e768]
add eax, 0xa426a60b
mov dword [0x49e768], eax
movzx eax, byte [esp + 0x5a]
and eax, 0xf
shl eax, 2
mov cl, al
mov byte [esp + 0x57], cl
mov dx, word [0x4a7600]
mov ax, dx
imul eax, eax, 0x3f5fedcd
mov dx, ax
mov word [0x4a7600], dx
movzx eax, byte [esp + 0x5b]
shr eax, 6
movzx esi, byte [esp + 0x57]
add esi, eax
mov eax, esi
mov cl, al
mov byte [esp + 0x57], cl
mov eax, dword [0x49d410]
mov esi, eax
inc esi
mov dword [0x49d410], esi
cmp eax, 0x91f96a2e
jl 0x41ffc0
mov eax, dword [0x4a1340]
mov cx, word [0x4a5628]
mov dx, cx
or eax, edx
or eax, 0xa101
mov cx, ax
mov word [0x4a5628], cx
jmp 0x420021
mov eax, dword [0x49b664]
inc eax
mov dword [0x49b664], eax
mov ecx, dword [0x498e98]
mov edx, ecx
dec edx
mov dword [0x498e98], edx
imul eax, ecx
or eax, 0xe9bc01ac
mov ecx, dword [0x49b12c]
sub ecx, 0x47f45625
or ecx, 0x46be15a0
cmp eax, ecx
jge 0x42001c
mov eax, dword [0x49fea0]
or eax, 0x15b2
mov cx, word [0x4a490a]
mov dx, cx
xor edx, eax
mov cx, dx
mov word [0x4a490a], cx
jmp 0x420021
mov eax, 0x5d3a6693
movzx ecx, byte [esp + 0x5b]
and ecx, 0x3f
mov dl, cl
mov byte [esp + 0x58], dl
mov ecx, dword [0x4a0688]
inc ecx
mov dword [0x4a0688], ecx
imul ecx, ecx, 0x4d5fed40
mov esi, 0x3717e1e8
sub esi, ecx
mov di, word [0x4a6198]
mov cx, di
sub ecx, esi
mov di, cx
mov word [0x4a6198], di
mov dword [esp + 0x60], 0
mov ecx, dword [0x49f8b0]
xor ecx, 0xffffffff
cmp eax, ecx
jne 0x420091
mov eax, dword [0x49f72c]
or eax, 0x406764f6
mov dword [0x49f72c], eax
jmp 0x4200be
mov eax, dword [0x49c6e4]
shl eax, 8
mov ecx, dword [0x49a364]
xor ecx, 0xffffffff
cmp eax, ecx
jg 0x4200b9
mov eax, dword [0x49f2bc]
xor eax, 0xee6c30ee
mov dword [0x49f2bc], eax
jmp 0x4200be
jmp 0x4200c3
cmp dword [esp + 0x60], 4
je 0x4202ef
mov eax, 0xe6055384
mov ecx, dword [0x49d234]
dec ecx
mov dword [0x49d234], ecx
cmp eax, ecx
jge 0x420100
mov ax, word [0x4a79b2]
mov cx, ax
add ecx, 0x40e14c41
mov ax, cx
mov word [0x4a79b2], ax
test byte [esp + 0x7b], 1
je 0x420229
mov eax, dword [esp + 0x60]
movzx eax, byte [esp + eax + 0x55]
cmp eax, 0x3d
jle 0x420229
mov eax, dword [0x498be0]
add eax, 0xf86d01a4
mov dword [0x498be0], eax
mov eax, dword [esp + 0x60]
movzx eax, byte [esp + eax + 0x55]
cmp eax, 0x3e
jne 0x4201ba
mov eax, dword [0x49d440]
or eax, 0xc6e074c8
mov dword [0x49d440], eax
mov ecx, dword [esp + 0x7c]
mov eax, esp
lea edx, [esp + 0x51]
mov dword [eax], edx
call fcn.0041b890
sub esp, 4
mov ecx, dword [0x49ee78]
xor ecx, 0xedc5db65
mov si, word [0x4a556a]
movsx edx, si
or ecx, edx
cmp ecx, 0x88ea72b5
mov dword [esp + 0x34], eax
jge 0x4201a6
mov ax, word [0x4a6900]
mov cx, ax
or ecx, 0xb7ff
mov ax, cx
mov word [0x4a6900], ax
jmp 0x4201b5
mov eax, dword [0x49da78]
xor eax, 0x14bc5fba
mov dword [0x49da78], eax
jmp 0x420215
mov eax, dword [0x49877c]
inc eax
mov dword [0x49877c], eax
mov ecx, dword [0x49eb28]
sub ecx, eax
mov dword [0x49eb28], ecx
mov ecx, dword [esp + 0x7c]
mov eax, esp
lea edx, [esp + 0x4d]
mov dword [eax], edx
call fcn.0041b890
sub esp, 4
mov ecx, dword [0x49fa68]
dec ecx
mov dword [0x49fa68], ecx
xor ecx, 0xccaa
mov si, word [0x4a8194]
mov dx, si
imul edx, ecx
mov si, dx
mov word [0x4a8194], si
mov dword [esp + 0x30], eax
mov eax, dword [0x4a1430]
add eax, 0xd2abb984
mov dword [0x4a1430], eax
jmp 0x42029e
mov eax, dword [0x49f3a4]
mov ecx, eax
inc ecx
mov dword [0x49f3a4], ecx
mov dx, word [0x4a4204]
mov cx, dx
lea eax, [eax + ecx - 0x147b76d]
mov dx, ax
mov word [0x4a4204], dx
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x60]
movzx eax, byte [esp + eax + 0x55]
mov esi, dword [esp + 0x44]
movsx eax, byte [esi + eax]
mov esi, esp
mov dword [esi], eax
call fcn.0043aff0
sub esp, 4
mov ecx, dword [0x4a24ec]
dec ecx
mov dword [0x4a24ec], ecx
and ecx, 0xa3400b08
or ecx, 0x4c1a74e7
mov esi, dword [0x4a07a0]
xor esi, ecx
mov dword [0x4a07a0], esi
mov dword [esp + 0x2c], eax
mov ax, word [0x4a56c4]
movsx ecx, ax
sar ecx, 3
mov edx, dword [0x49fab8]
imul edx, ecx
mov dword [0x49fab8], edx
mov ecx, dword [esp + 0x60]
inc ecx
mov dword [esp + 0x60], ecx
mov ecx, dword [0x498564]
mov edx, ecx
inc edx
mov dword [0x498564], edx
mov ax, word [0x4a4794]
movsx edx, ax
mov esi, dword [0x4a2534]
and edx, esi
xor ecx, edx
mov dword [0x4a0514], ecx
jmp 0x4200c3
mov eax, dword [0x49913c]
or eax, 0x26328a9f
mov dword [0x49913c], eax
mov dword [esp + 0x60], 0
mov eax, dword [0x49e89c]
not eax
mov ecx, dword [0x49dcec]
mov edx, ecx
dec edx
mov dword [0x49dcec], edx
imul eax, ecx
sub eax, 0x2c399b04
cmp eax, 0x511ced9b
jle 0x42033f
mov eax, dword [0x4a1140]
imul eax, eax, 0x9c7411e3
mov dword [0x4a1140], eax
jmp 0x420344
mov eax, dword [0x49d240]
add eax, 0x50a90acb
mov dword [0x49d240], eax
jmp 0x41fd94
mov eax, dword [0x498460]
mov ecx, eax
inc ecx
mov dword [0x498460], ecx
add eax, 0xbdd824b9
mov ecx, dword [0x498444]
and ecx, eax
mov dword [0x498444], ecx
cmp dword [esp + 0x60], 0
je 0x420b59
mov eax, dword [0x49c968]
xor eax, 0xacdb9fb2
mov ecx, dword [0x49c590]
inc ecx
mov dword [0x49c590], ecx
or eax, ecx
mov ecx, dword [0x4a2bac]
add ecx, eax
mov dword [0x4a2bac], ecx
mov eax, dword [esp + 0x60]
mov dword [esp + 0x5c], eax
mov eax, dword [0x49c378]
imul eax, eax, 0x1aee245c
mov dword [0x498180], eax
cmp dword [esp + 0x5c], 3
jge 0x42049e
mov eax, 0x3bbb0f04
mov cx, word [0x4a5426]
movsx edx, cx
sar edx, 4
imul edx, edx, 0xfb892e2b
mov esi, 0x12fa666a
sub esi, edx
mov edx, dword [0x4a08ec]
and edx, esi
mov dword [0x4a08ec], edx
mov edx, dword [esp + 0x5c]
mov byte [esp + edx + 0x59], 0
mov edx, dword [0x498598]
xor edx, 0xb3651bcb
mov dword [0x498598], edx
mov edx, dword [esp + 0x5c]
inc edx
mov dword [esp + 0x5c], edx
mov cx, word [0x4a828a]
mov dx, cx
dec edx
mov cx, dx
mov word [0x4a828a], cx
movsx edx, cx
imul edx, edx, 0x9cc3f547
cmp eax, edx
jle 0x420499
mov eax, 0xd2372b33
mov ecx, dword [0x49dd20]
mov dx, word [0x4a372a]
movsx esi, dx
and ecx, esi
mov esi, dword [0x49d230]
and ecx, esi
cmp eax, ecx
jg 0x420494
mov eax, dword [0x49800c]
mov ecx, eax
inc ecx
mov dword [0x49800c], ecx
mov ecx, dword [0x49c4b0]
xor ecx, eax
xor ecx, 0x74101adb
mov eax, dword [0x49c2b4]
add eax, ecx
mov dword [0x49c2b4], eax
jmp 0x420499
jmp 0x4203c3
mov eax, dword [0x49a6b4]
shl eax, 6
mov ecx, dword [0x49a79c]
and eax, ecx
mov dx, word [0x4a7a82]
mov cx, dx
inc ecx
mov si, cx
mov word [0x4a7a82], si
movsx ecx, dx
and eax, ecx
cmp eax, 0xb922dde7
jle 0x4204e2
mov eax, dword [0x4a14dc]
and eax, 0x914aa784
mov dword [0x4a14dc], eax
movzx eax, byte [esp + 0x59]
shr eax, 2
mov cl, al
mov byte [esp + 0x55], cl
mov eax, dword [0x498460]
shl eax, 5
mov dx, word [0x4a8178]
movsx esi, dx
xor eax, esi
mov esi, dword [0x49a34c]
add esi, eax
mov dword [0x49a34c], esi
movzx eax, byte [esp + 0x59]
and eax, 3
shl eax, 4
mov cl, al
mov byte [esp + 0x56], cl
mov eax, dword [0x4a0e24]
shl eax, 2
xor eax, 0x1f14
mov dx, ax
mov word [0x4a2ca2], dx
movzx eax, byte [esp + 0x5a]
shr eax, 4
movzx esi, byte [esp + 0x56]
add esi, eax
mov eax, esi
mov cl, al
mov byte [esp + 0x56], cl
mov eax, dword [0x498298]
shl eax, 5
add eax, 0x356789d2
and eax, 0x8e54f5e6
mov esi, dword [0x498af0]
or esi, eax
mov dword [0x498af0], esi
movzx eax, byte [esp + 0x5a]
and eax, 0xf
shl eax, 2
mov cl, al
mov byte [esp + 0x57], cl
mov eax, dword [0x49fd40]
mov esi, eax
inc esi
mov dword [0x49fd40], esi
add eax, 0x97924eb4
xor eax, 0xb4eb7f37
mov esi, dword [0x49cad4]
sub esi, eax
mov dword [0x49cad4], esi
movzx eax, byte [esp + 0x5b]
shr eax, 6
movzx esi, byte [esp + 0x57]
add esi, eax
mov eax, esi
mov cl, al
mov byte [esp + 0x57], cl
mov dx, word [0x4a58f8]
mov ax, dx
xor eax, 0x90ed
mov dx, ax
mov word [0x4a58f8], dx
movzx eax, byte [esp + 0x5b]
and eax, 0x3f
mov cl, al
mov byte [esp + 0x58], cl
mov eax, dword [0x4a049c]
xor eax, 0xc8ab4456
mov dword [0x4a049c], eax
mov dword [esp + 0x5c], 0
mov dx, word [0x4a6e96]
mov ax, dx
dec eax
mov dx, ax
mov word [0x4a6e96], dx
movsx eax, dx
cmp eax, 0xbef7d457
je 0x420687
mov ax, word [0x4a6258]
mov cx, ax
inc ecx
mov dx, cx
mov word [0x4a6258], dx
movsx ecx, ax
imul ecx, ecx, 0x93bce6ba
cmp ecx, 0x1dd02a68
jge 0x42065d
mov eax, dword [0x49a1b0]
add eax, 0x29b4799c
mov dword [0x49a1b0], eax
jmp 0x420682
mov ax, word [0x4a424a]
movsx ecx, ax
not ecx
add ecx, 0xeb4fb453
and ecx, 0x81fb83d0
mov edx, dword [0x49f49c]
add edx, ecx
mov dword [0x49f49c], edx
jmp 0x420687
jmp 0x42068c
mov eax, dword [0x4a29a0]
add eax, 0x3fff7ea0
mov dword [0x4a29a0], eax
mov eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x60]
jle 0x420731
mov ax, word [0x4a583c]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x4a583c], ax
movsx ecx, ax
cmp ecx, 0x600000
jge 0x420707
mov eax, 0xd52cfbda
mov ecx, dword [0x49ec94]
mov edx, ecx
inc edx
mov dword [0x49ec94], edx
and ecx, 0x68f335dc
or ecx, 0x8f287673
cmp eax, ecx
jl 0x420702
mov eax, dword [0x4a296c]
xor eax, 0x7f321fd7
mov dword [0x4a296c], eax
jmp 0x42072c
mov ax, word [0x4a734c]
movsx ecx, ax
not ecx
add ecx, 0xecccf226
and ecx, 0x5dfeae91
mov edx, dword [0x49e93c]
add edx, ecx
mov dword [0x49e93c], edx
jmp 0x4209d4
mov ax, word [0x4a69ee]
movsx ecx, ax
xor ecx, 0x42312d0f
mov edx, dword [0x4a1014]
shl edx, 8
mov ax, word [0x4a303e]
mov si, ax
dec esi
mov di, si
mov word [0x4a303e], di
movsx esi, ax
xor edx, esi
cmp ecx, edx
jge 0x42078c
mov ax, word [0x4a4584]
movsx ecx, ax
add ecx, 0xa2637b52
mov edx, dword [0x49af84]
xor edx, ecx
mov dword [0x49af84], edx
jmp 0x42079b
mov eax, dword [0x49d9d0]
or eax, 0x640199b8
mov dword [0x49d9d0], eax
test byte [esp + 0x7b], 1
je 0x42090e
mov eax, dword [esp + 0x5c]
movzx eax, byte [esp + eax + 0x55]
cmp eax, 0x3d
jle 0x42090e
mov eax, dword [0x49a1b8]
inc eax
mov dword [0x49a1b8], eax
and eax, 0x6630ee03
mov ecx, dword [0x4997c0]
xor ecx, eax
mov dword [0x4997c0], ecx
mov eax, dword [esp + 0x5c]
movzx eax, byte [esp + eax + 0x55]
cmp eax, 0x3e
jne 0x42084b
mov ax, word [0x4a5ab4]
mov cx, ax
mov edx, ecx
dec edx
mov ax, dx
mov word [0x4a5ab4], ax
imul ecx, ecx, 0x8162be66
mov edx, dword [0x49fe50]
shl edx, 7
or ecx, edx
mov ax, cx
mov word [0x4a5174], ax
mov ecx, dword [esp + 0x7c]
mov edx, esp
lea esi, [esp + 0x51]
mov dword [edx], esi
call fcn.0041b890
sub esp, 4
mov ecx, dword [0x49d8f0]
sar ecx, 3
mov edx, dword [0x49f6ac]
add edx, ecx
mov dword [0x49f6ac], edx
mov dword [esp + 0x28], eax
jmp 0x4208e0
mov eax, 0xe0757a34
mov ecx, dword [0x49803c]
inc ecx
mov dword [0x49803c], ecx
mov edx, dword [0x499418]
mov esi, edx
inc esi
mov dword [0x499418], esi
sub ecx, edx
add ecx, 0xe4a5320c
mov edx, dword [0x49b904]
or edx, ecx
mov dword [0x49b904], edx
mov ecx, dword [esp + 0x7c]
mov edx, esp
lea esi, [esp + 0x4d]
mov dword [edx], esi
mov dword [esp + 0x24], eax
call fcn.0041b890
sub esp, 4
mov di, word [0x4a5168]
movsx ecx, di
xor ecx, 0xffffffff
mov edx, dword [esp + 0x24]
cmp edx, ecx
mov dword [esp + 0x20], eax
jge 0x4208d2
mov eax, dword [0x499650]
mov ecx, dword [0x49e58c]
imul eax, ecx
shl eax, 4
mov dword [0x49e58c], eax
jmp 0x4208db
mov word [0x4a4e62], 0x67ec
jmp 0x4208e0
mov eax, 0xc6bbe66e
mov cx, word [0x4a42f2]
movsx edx, cx
xor edx, 0xffffffff
cmp eax, edx
jle 0x420909
mov eax, dword [0x4a0afc]
and eax, 0x21466000
mov dword [0x4a0afc], eax
jmp 0x42097c
mov eax, dword [0x4a0190]
not eax
mov cx, word [0x4a5db8]
mov dx, cx
add edx, eax
mov cx, dx
mov word [0x4a5db8], cx
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.0043aff0
sub esp, 4
mov si, word [0x4a5e40]
mov cx, si
dec ecx
mov si, cx
mov word [0x4a5e40], si
mov si, word [0x4a44c0]
mov dx, si
imul edx, ecx
mov si, dx
mov word [0x4a44c0], si
mov dword [esp + 0x1c], eax
mov ax, word [0x4a65be]
movsx ecx, ax
shl ecx, 0xa
mov edx, dword [0x4a2a60]
lea ecx, [ecx + edx - 0x530c2b2e]
mov dword [0x4a2a60], ecx
mov ecx, dword [esp + 0x5c]
inc ecx
mov dword [esp + 0x5c], ecx
mov ax, word [0x4a7eba]
mov cx, ax
mov edx, dword [0x49d0d4]
imul edx, edx, 0x5e583a25
xor ecx, edx
mov ax, word [0x4a5bbe]
mov dx, ax
or edx, ecx
mov ax, dx
mov word [0x4a5bbe], ax
jmp 0x42068c
jmp 0x4209d9
cmp dword [esp + 0x60], 3
jge 0x420b41
mov eax, dword [0x49f5dc]
add eax, 0x17d38e40
mov ecx, dword [0x498ef0]
sub ecx, eax
mov dword [0x498ef0], ecx
mov eax, dword [esp + 0x60]
inc eax
mov dword [esp + 0x60], eax
mov eax, dword [0x49b9fc]
add eax, 0x5d6023c2
mov dword [0x49b9fc], eax
test byte [esp + 0x7b], 1
je 0x420aeb
mov eax, 0xd30588eb
mov cx, word [0x4a3ef6]
mov dx, cx
inc edx
mov si, dx
mov word [0x4a3ef6], si
movsx edx, cx
cmp eax, edx
jg 0x420a73
mov ax, word [0x4a6dfa]
mov cx, ax
dec ecx
mov ax, cx
mov word [0x4a6dfa], ax
movsx ecx, ax
xor ecx, 0xa2274a19
mov edx, dword [0x4a1ac4]
and edx, ecx
mov dword [0x4a1ac4], edx
jmp 0x420a82
mov eax, dword [0x49822c]
add eax, 0xcb3836c1
mov dword [0x49822c], eax
mov eax, 0xddcfdfb7
mov ecx, 0x361dda14
mov edx, dword [esp + 0x7c]
mov esi, esp
lea edi, [esp + 0x49]
mov dword [esi], edi
mov dword [esp + 0x18], ecx
mov ecx, edx
mov dword [esp + 0x14], eax
call fcn.0041b890
sub esp, 4
mov ecx, dword [0x49e60c]
mov edx, ecx
dec edx
mov dword [0x49e60c], edx
mov edx, dword [0x49b444]
mov esi, dword [esp + 0x18]
sub esi, edx
xor ecx, esi
mov edx, dword [esp + 0x14]
cmp edx, ecx
mov dword [esp + 0x10], eax
jne 0x420ae6
mov eax, dword [0x4a145c]
or eax, 0x11a43723
mov dword [0x4a145c], eax
jmp 0x420b2d
mov ax, word [0x4a6e7e]
mov cx, ax
xor ecx, 0x3558
mov ax, cx
mov word [0x4a6e7e], ax
mov ecx, dword [esp + 0x7c]
mov edx, esp
mov dword [edx], 0x3d
call fcn.0043aff0
sub esp, 4
mov ecx, dword [0x49c560]
add ecx, 0x46c8199a
mov dword [0x49c560], ecx
mov dword [esp + 0xc], eax
mov eax, dword [0x4a07a8]
add eax, 0x89aa619b
mov dword [0x4a07a8], eax
jmp 0x4209d9
mov ax, word [0x4a79ce]
mov cx, ax
add ecx, 0xa71de327
mov ax, cx
mov word [0x4a79ce], ax
mov eax, 0x9fdee7e3
mov cx, word [0x4a63ce]
mov dx, cx
add edx, 0xebffdc00
mov cx, dx
mov word [0x4a63ce], 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.0041ef40
mov eax, dword [0x49861c]
shl eax, 3
and eax, 0xc418
mov cx, word [0x4a81c8]
mov dx, cx
xor edx, eax
mov cx, dx
mov word [0x4a81c8], cx
mov eax, esp
lea edx, [esp + 0x51]
mov dword [eax], edx
mov dword [eax + 4], 4
call fcn.004279a0
mov cx, word [0x4a53aa]
mov ax, cx
inc eax
mov cx, ax
mov word [0x4a53aa], cx
movsx eax, cx
mov edx, dword [esp + 8]
cmp edx, eax
jle 0x420c13
mov eax, dword [0x49bb94]
mov cx, word [0x4a556c]
movsx edx, cx
sar edx, 5
imul edx, edx, 0xee7c180a
or eax, edx
mov edx, dword [0x4a29e8]
xor edx, eax
mov dword [0x4a29e8], edx
mov eax, esp
lea ecx, [esp + 0x4d]
mov dword [eax], ecx
mov dword [eax + 4], 4
call fcn.004279a0
mov eax, dword [0x49ffa8]
add eax, eax
mov ecx, dword [0x49f448]
not ecx
and eax, ecx
mov ecx, dword [0x4a2b20]
xor eax, ecx
cmp eax, 0xcee4f12
jne 0x420c55
mov dword [0x499278], 0xc8743da9
mov eax, esp
lea ecx, [esp + 0x49]
mov dword [eax], ecx
mov dword [eax + 4], 4
call fcn.004279a0
mov eax, dword [0x49be60]
mov ecx, dword [0x49aaec]
imul ecx, ecx, 0xae8a7cbc
and eax, ecx
mov ecx, dword [0x49a144]
or ecx, eax
mov dword [0x49a144], ecx
add esp, 0x80
pop esi
pop edi
pop ebx
ret