Function at 0x401000
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x7c
mov eax, dword [esp + 0x9c]
mov cl, byte [esp + 0x98]
mov edx, dword [esp + 0x94]
mov esi, dword [esp + 0x90]
mov edi, 0x59822e53
mov dword [esp + 0x78], eax
and cl, 1
mov byte [esp + 0x77], cl
mov dword [esp + 0x70], edx
mov dword [esp + 0x6c], esi
mov eax, dword [0x499e84]
xor eax, 0xdb2b0c92
mov edx, dword [0x493a10]
imul edx, eax
mov dword [0x493a10], edx
mov eax, dword [0x4a1ce4]
xor eax, 0xcf8b4427
mov dword [0x4a1ce4], eax
mov bx, word [0x4a6f80]
movsx eax, bx
shl eax, 9
xor eax, 0x87355c10
mov edx, dword [0x497b88]
and edx, eax
mov dword [0x497b88], edx
mov eax, dword [0x493a9c]
imul eax, eax, 0x7458dd73
add eax, 0xb578e471
mov edx, dword [0x4994cc]
sub edx, eax
mov dword [0x4994cc], edx
mov dword [esp + 0x5c], 0
mov bx, word [0x4ac0fa]
mov ax, bx
add eax, 0xac2caa2c
mov bx, ax
mov word [0x4ac0fa], bx
mov dword [esp + 0x58], 0
mov eax, dword [0x4a1c7c]
mov bx, word [0x4a6ec8]
movsx edx, bx
add eax, edx
or eax, 0x7126d439
cmp edi, eax
je 0x401110
mov ax, word [0x4a4704]
mov cx, ax
dec ecx
mov dx, cx
mov word [0x4a4704], dx
movsx ecx, ax
xor ecx, 0x58a634f0
mov dword [0x499728], ecx
jmp 0x401128
mov ax, word [0x4ac56a]
mov cx, ax
or ecx, 0x3af7
mov ax, cx
mov word [0x4ac56a], ax
mov eax, esp
mov dword [eax + 4], 0x41
mov dword [eax], 0x2ec
call fcn.004322b0
mov dword [esp + 0x40], eax
mov eax, dword [0x49c76c]
and eax, 0xc6cba281
mov dword [0x49c76c], eax
mov eax, esp
mov dword [eax + 4], 4
mov dword [eax], 0x3e74
call fcn.004322b0
mov dword [esp + 0x68], eax
mov eax, dword [0x497b3c]
inc eax
mov dword [0x497b3c], eax
xor eax, 0x8816
or eax, 0x7780
mov cx, word [0x4a442c]
mov dx, cx
add edx, eax
mov cx, dx
mov word [0x4a442c], cx
mov eax, dword [esp + 0x68]
mov edx, esp
mov dword [edx + 4], eax
lea eax, [esp + 0x4d]
mov dword [edx], eax
call fcn.00456640
mov edx, dword [0x49a928]
xor edx, 0x46c2258f
mov dword [0x49a928], edx
mov edx, esp
mov dword [edx + 4], 4
mov dword [edx], 0x1d30
mov dword [esp + 0x3c], eax
call fcn.004322b0
mov dword [esp + 0x64], eax
mov eax, dword [0x495664]
xor eax, 0xb16c58a6
mov dword [0x495664], eax
mov eax, dword [esp + 0x68]
mov edx, esp
mov dword [edx + 4], eax
mov dword [edx], 4
call fcn.00422f30
mov word [0x4a8b9a], 0xb3d
mov eax, dword [esp + 0x64]
mov edx, esp
mov dword [edx + 4], eax
lea eax, [esp + 0x49]
mov dword [edx], eax
call fcn.00456640
mov cx, word [0x4a66d0]
mov dx, cx
dec edx
mov cx, dx
mov word [0x4a66d0], cx
movsx edx, cx
add edx, 0x61da9f10
cmp edx, 0x8d8d3591
mov dword [esp + 0x38], eax
je 0x401251
mov eax, dword [0x49d364]
add eax, 0xfef13e77
mov dword [0x49d364], eax
mov eax, esp
mov dword [eax + 4], 4
mov dword [eax], 0x94a
call fcn.004322b0
mov dword [esp + 0x60], eax
mov eax, dword [0x495784]
imul eax, eax, 0x2000802
mov dword [0x495784], eax
mov eax, dword [esp + 0x64]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 4
call fcn.00422f30
mov eax, dword [0x4a24f8]
imul eax, eax, 0x5e5ed99
mov ecx, dword [0x49ae28]
xor ecx, eax
mov dword [0x49ae28], ecx
mov eax, dword [esp + 0x60]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x45]
mov dword [ecx], eax
call fcn.00456640
mov ecx, dword [0x4a2b00]
xor ecx, 0x97d58df7
mov edx, dword [0x498ecc]
sub edx, ecx
mov dword [0x498ecc], edx
mov ecx, dword [esp + 0x60]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 4
mov dword [esp + 0x34], eax
call fcn.00422f30
mov si, word [0x4a4898]
mov ax, si
dec eax
mov di, ax
mov word [0x4a4898], di
movsx eax, si
add eax, 0xb1373942
mov ecx, dword [0x492d60]
sub ecx, eax
mov dword [0x492d60], ecx
cmp dword [esp + 0x70], 0
je 0x401969
mov eax, 0xc2c6230e
mov cx, word [0x4ab838]
movsx edx, cx
and edx, 0x532cc05d
mov dword [0x4938fc], edx
mov edx, dword [esp + 0x70]
dec edx
mov dword [esp + 0x70], edx
mov cx, word [0x4a3f6a]
mov dx, cx
inc edx
mov cx, dx
mov word [0x4a3f6a], cx
movsx edx, cx
mov dword [0x496e70], edx
mov edx, dword [esp + 0x6c]
mov bl, byte [edx]
mov edx, dword [esp + 0x5c]
mov byte [esp + edx + 0x55], bl
mov cx, word [0x4aa776]
mov dx, cx
add edx, 0xd3f189ed
mov cx, dx
mov word [0x4aa776], cx
mov edx, dword [esp + 0x5c]
inc edx
mov dword [esp + 0x5c], edx
mov edx, dword [0x496374]
mov esi, edx
inc esi
mov dword [0x496374], esi
mov esi, dword [0x4a2370]
imul edx, esi
mov esi, dword [0x496fb4]
and edx, esi
cmp eax, edx
jge 0x4013cc
mov eax, dword [0x49da14]
xor eax, 0xedc52037
mov dword [0x49da14], eax
mov eax, dword [esp + 0x6c]
inc eax
mov dword [esp + 0x6c], eax
mov eax, dword [0x496ad0]
imul eax, eax, 0xb5c03f3
mov dword [0x496ad0], eax
cmp dword [esp + 0x5c], 3
jne 0x40192f
mov eax, 0x557034e5
mov ecx, dword [0x49331c]
mov dx, word [0x4aa882]
mov si, dx
or esi, ecx
mov dx, si
mov word [0x4aa882], dx
movzx ecx, byte [esp + 0x55]
shr ecx, 2
mov bl, cl
mov byte [esp + 0x51], bl
mov ecx, dword [0x49e65c]
mov esi, dword [0x493e8c]
or esi, ecx
mov dword [0x493e8c], esi
movzx ecx, byte [esp + 0x55]
and ecx, 3
shl ecx, 4
mov bl, cl
mov byte [esp + 0x52], bl
mov dx, word [0x4a6032]
mov cx, dx
dec ecx
mov di, cx
mov word [0x4a6032], di
movsx ecx, dx
add ecx, 0x45796bf8
and ecx, 0xa4a0b475
mov esi, dword [0x49ebd4]
sub esi, ecx
mov dword [0x49ebd4], esi
movzx ecx, byte [esp + 0x56]
shr ecx, 4
movzx esi, byte [esp + 0x52]
add esi, ecx
mov ecx, esi
mov bl, cl
mov byte [esp + 0x52], bl
mov ecx, dword [0x493e70]
not ecx
add ecx, 0x770f424f
mov esi, dword [0x49e4f4]
mov ebp, esi
inc ebp
mov dword [0x49e4f4], ebp
and ecx, esi
cmp eax, ecx
jg 0x4014d0
mov eax, dword [0x493b6c]
mov ecx, eax
inc ecx
mov dword [0x493b6c], ecx
mov ecx, dword [0x49c670]
xor ecx, eax
mov dword [0x49c670], ecx
mov eax, 0xe299a5f8
movzx ecx, byte [esp + 0x56]
and ecx, 0xf
shl ecx, 2
mov dl, cl
mov byte [esp + 0x53], dl
mov ecx, dword [0x4a0b34]
mov esi, ecx
inc esi
mov dword [0x4a0b34], esi
or ecx, 0xce40f4c6
cmp eax, ecx
jg 0x401550
mov eax, 0xf8247a25
mov ecx, dword [0x49d600]
inc ecx
mov dword [0x49d600], ecx
sub eax, ecx
and eax, 0x8b66ed17
cmp eax, 0x498fa7ff
jl 0x40154b
mov eax, dword [0x493980]
mov ecx, eax
dec ecx
mov dword [0x493980], ecx
mov ecx, dword [0x4978e4]
or eax, ecx
mov ecx, dword [0x4a23dc]
and ecx, eax
mov dword [0x4a23dc], ecx
jmp 0x40155f
mov eax, dword [0x4a2b58]
xor eax, 0xfd3e91e5
mov dword [0x4a2b58], eax
movzx eax, byte [esp + 0x57]
shr eax, 6
movzx ecx, byte [esp + 0x53]
add ecx, eax
mov dl, cl
mov byte [esp + 0x53], dl
mov eax, dword [0x4a22c0]
cmp eax, 0x120d2e2a
jle 0x401615
mov eax, 0x23e83a9
mov cx, word [0x4a4bb4]
mov dx, cx
dec edx
mov si, dx
mov word [0x4a4bb4], si
movsx edx, cx
add edx, 0xb35ce285
add edx, 0x469edff7
cmp eax, edx
jge 0x4015e7
mov eax, 0x28241048
mov ecx, dword [0x494048]
mov edx, ecx
inc edx
mov dword [0x494048], edx
add ecx, 0x9a85fa8b
and ecx, 0xad6e1ea1
cmp eax, ecx
je 0x4015e2
jmp 0x4015e2
jmp 0x401610
mov eax, 0x476873fa
mov ecx, dword [0x4931bc]
add ecx, 0xa480520b
or ecx, 0x803d9b3f
cmp eax, ecx
jg 0x40160b
jmp 0x40160b
jmp 0x401610
jmp 0x401615
movzx eax, byte [esp + 0x57]
and eax, 0x3f
mov cl, al
mov byte [esp + 0x54], cl
mov eax, dword [0x4a01d0]
xor eax, 0x95585513
mov dword [0x4a01d0], eax
mov dword [esp + 0x5c], 0
mov eax, dword [0x492ec4]
inc eax
mov dword [0x492ec4], eax
or eax, 0x10ae3c79
or eax, 0x4a8e0553
cmp eax, 0xeeb776a8
jle 0x40168b
mov ax, word [0x4abc5e]
mov cx, ax
dec ecx
mov dx, cx
mov word [0x4abc5e], dx
movsx ecx, ax
xor ecx, 0xc60500b5
or ecx, 0x18c8ff4a
mov esi, dword [0x496eb8]
xor esi, ecx
mov dword [0x496eb8], esi
jmp 0x401690
cmp dword [esp + 0x5c], 4
je 0x401914
mov eax, dword [0x4930f0]
add eax, 0x1b7cd3ce
mov dword [0x4930f0], eax
test byte [esp + 0x77], 1
je 0x401887
mov eax, dword [esp + 0x5c]
movzx eax, byte [esp + eax + 0x51]
cmp eax, 0x3d
jle 0x401887
mov ax, word [0x4a99d8]
mov cx, ax
or ecx, 0x6aaf
mov ax, cx
mov word [0x4a99d8], ax
mov ecx, dword [esp + 0x5c]
movzx ecx, byte [esp + ecx + 0x51]
cmp ecx, 0x3e
jne 0x4017a6
mov eax, dword [0x4a1a4c]
shl eax, 3
or eax, 0xe4e4a571
mov ecx, dword [0x49a18c]
and ecx, 0x6efff316
cmp eax, ecx
je 0x401757
mov eax, dword [0x4a13b4]
mov ecx, eax
dec ecx
mov dword [0x4a13b4], ecx
mov ecx, dword [0x4966d8]
imul eax, ecx
mov ecx, dword [0x49d6e4]
mov edx, ecx
dec edx
mov dword [0x49d6e4], edx
lea eax, [eax + ecx - 1]
mov si, word [0x4a5a9a]
mov cx, si
and ecx, eax
mov si, cx
mov word [0x4a5a9a], si
jmp 0x401767
mov eax, dword [0x49c8cc]
imul eax, eax, 0xff22fe9a
mov dword [0x49c8cc], eax
mov ecx, dword [esp + 0x78]
mov eax, esp
lea edx, [esp + 0x4d]
mov dword [eax], edx
call fcn.00419f20
sub esp, 4
mov ecx, dword [0x49f6a0]
or ecx, 0xebff
mov si, word [0x4a8fc8]
mov dx, si
sub edx, ecx
mov si, dx
mov word [0x4a8fc8], si
mov dword [esp + 0x30], eax
jmp 0x401872
mov eax, 0x426421e3
mov ecx, dword [0x498910]
xor ecx, 0xffffffff
imul ecx, ecx, 0xeb2842
cmp eax, ecx
jl 0x4017da
mov ax, word [0x4ac08c]
mov cx, ax
or ecx, 0x4002
mov ax, cx
mov word [0x4ac08c], ax
mov ecx, dword [esp + 0x78]
mov eax, esp
lea edx, [esp + 0x49]
mov dword [eax], edx
call fcn.00419f20
sub esp, 4
mov ecx, dword [0x49be9c]
mov edx, ecx
inc edx
mov dword [0x49be9c], edx
mov edx, dword [0x49a834]
xor edx, 0xffffffff
or edx, 0x9608c298
cmp ecx, edx
mov dword [esp + 0x2c], eax
je 0x401826
mov word [0x4a614a], 0x3aea
jmp 0x40186d
mov eax, 0x408b080a
mov ecx, dword [0x4a1968]
add ecx, 0xb7daa733
or ecx, 0x7cb11dbf
cmp eax, ecx
jge 0x401868
mov eax, 0x6f85bf6c
mov ecx, dword [0x49764c]
xor ecx, 0xc232713d
cmp eax, ecx
jg 0x401863
jmp 0x401863
jmp 0x401868
jmp 0x40186d
jmp 0x401872
mov eax, dword [0x493474]
imul eax, eax, 0xe84dbafc
mov dword [0x493474], eax
jmp 0x4018de
mov ax, word [0x4a39f6]
mov cx, ax
or ecx, 0x58a3
mov ax, cx
mov word [0x4a39f6], ax
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x5c]
movzx edx, byte [esp + edx + 0x51]
mov esi, dword [esp + 0x40]
movsx edx, byte [esi + edx]
mov esi, esp
mov dword [esi], edx
call fcn.00416c80
sub esp, 4
mov di, word [0x4a96a6]
mov cx, di
add ecx, 0x20a37140
mov di, cx
mov word [0x4a96a6], di
mov dword [esp + 0x28], eax
mov dword [0x49f46c], 0xfc393251
mov eax, dword [esp + 0x5c]
inc eax
mov dword [esp + 0x5c], eax
mov eax, dword [0x492a2c]
and eax, 0x12
mov cx, word [0x4a9b92]
mov dx, cx
add edx, eax
mov cx, dx
mov word [0x4a9b92], cx
jmp 0x401690
mov word [0x4a792e], 0xb00
mov dword [esp + 0x5c], 0
mov dword [0x493d30], 0x2e557018
mov eax, dword [0x4a252c]
mov ecx, eax
dec ecx
mov dword [0x4a252c], ecx
mov ecx, 0xbc8d0261
sub ecx, eax
mov eax, dword [0x4a191c]
not eax
and ecx, eax
mov dx, word [0x4a7c48]
mov ax, dx
imul eax, ecx
mov dx, ax
mov word [0x4a7c48], dx
jmp 0x401317
mov eax, 0x5189e9e3
mov ecx, dword [0x49a64c]
xor ecx, 0xffffffff
cmp eax, ecx
jne 0x40198e
mov eax, dword [0x49f6c4]
and eax, 0x5e390ddc
mov dword [0x49f6c4], eax
cmp dword [esp + 0x5c], 0
je 0x402068
mov eax, dword [0x49cb24]
or eax, 0x16c0ff3b
mov ecx, dword [0x4a2e78]
and ecx, eax
mov dword [0x4a2e78], ecx
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x58], eax
mov eax, dword [0x498690]
inc eax
mov dword [0x498690], eax
or eax, 0xf728ba9f
mov ecx, dword [0x492a68]
sub ecx, eax
mov dword [0x492a68], ecx
cmp dword [esp + 0x58], 3
jge 0x401ac9
mov eax, 0xfe9563de
mov cx, word [0x4a43aa]
movsx edx, cx
and edx, 0xd9bdc775
and edx, 0xd42d0f5d
cmp eax, edx
jl 0x401a6b
mov eax, dword [0x49a6d8]
mov ecx, eax
dec ecx
mov dword [0x49a6d8], ecx
mov ecx, dword [0x49ec6c]
add ecx, 0x9d5cc2f6
xor eax, ecx
mov ecx, dword [0x499b98]
mov edx, ecx
dec edx
mov dword [0x499b98], edx
and ecx, 0x486a6750
cmp eax, ecx
jne 0x401a66
mov eax, 0xafc99ff6
mov ecx, dword [0x494a28]
xor ecx, 0x138907f0
cmp eax, ecx
jle 0x401a5c
jmp 0x401a61
jmp 0x401a61
jmp 0x401a66
jmp 0x401a6b
mov eax, 0xb8fc9cd1
mov ecx, dword [esp + 0x58]
mov byte [esp + ecx + 0x55], 0
mov ecx, dword [0x4a19d8]
imul ecx, ecx, 0x8c0f2389
mov dword [0x4a19d8], ecx
mov ecx, dword [esp + 0x58]
inc ecx
mov dword [esp + 0x58], ecx
mov ecx, dword [0x499930]
mov edx, ecx
dec edx
mov dword [0x499930], edx
or ecx, 0x9273efd3
cmp eax, ecx
jg 0x401ac4
mov eax, dword [0x496e30]
mov ecx, dword [0x49d650]
sub ecx, eax
mov dword [0x49d650], ecx
jmp 0x4019d7
mov eax, dword [0x494234]
or eax, 0xaf5fdf67
mov dword [0x494234], eax
movzx eax, byte [esp + 0x55]
shr eax, 2
mov cl, al
mov byte [esp + 0x51], cl
mov eax, dword [0x4987ac]
cmp eax, 0x497737be
jne 0x401b06
mov eax, dword [0x49a580]
imul eax, eax, 0xdb8d54a7
mov dword [0x49a580], eax
mov eax, 0x98c2200c
movzx ecx, byte [esp + 0x55]
and ecx, 3
shl ecx, 4
mov dl, cl
mov byte [esp + 0x52], dl
mov ecx, dword [0x49cafc]
mov si, word [0x4a6e10]
mov di, si
mov ebx, edi
dec ebx
mov si, bx
mov word [0x4a6e10], si
add edi, 0x4084afe5
and ecx, edi
mov si, word [0x4aabb8]
mov di, si
or edi, ecx
mov si, di
mov word [0x4aabb8], si
movzx ecx, byte [esp + 0x56]
shr ecx, 4
movzx edi, byte [esp + 0x52]
add edi, ecx
mov ecx, edi
mov dl, cl
mov byte [esp + 0x52], dl
mov si, word [0x4aa9b6]
movsx ecx, si
sar ecx, 5
mov si, word [0x4a47d2]
movsx edi, si
or ecx, edi
cmp eax, ecx
jne 0x401bb5
mov ax, word [0x4ab1ea]
movsx ecx, ax
shr ecx, 7
or ecx, 0xc179
mov ax, word [0x4a9202]
mov dx, ax
sub edx, ecx
mov ax, dx
mov word [0x4a9202], ax
movzx eax, byte [esp + 0x56]
and eax, 0xf
shl eax, 2
mov cl, al
mov byte [esp + 0x53], cl
mov eax, dword [0x49c488]
mov edx, eax
dec edx
mov dword [0x49c488], edx
imul eax, eax, 0x46e10fc2
mov edx, dword [0x4a10dc]
sub edx, eax
mov dword [0x4a10dc], edx
movzx eax, byte [esp + 0x57]
shr eax, 6
movzx edx, byte [esp + 0x53]
add edx, eax
mov cl, dl
mov byte [esp + 0x53], cl
mov eax, dword [0x492598]
dec eax
mov dword [0x492598], eax
imul eax, eax, 0x15b13fe8
add eax, 0x3fdecb5a
mov edx, dword [0x4a2da4]
imul edx, eax
mov dword [0x4a2da4], edx
movzx eax, byte [esp + 0x57]
and eax, 0x3f
mov cl, al
mov byte [esp + 0x54], cl
mov eax, dword [0x4a35a8]
add eax, 0xb6e28c61
mov dword [0x4a35a8], eax
mov dword [esp + 0x58], 0
mov dword [0x49407c], 0x802890a
mov ax, word [0x4a8fa0]
mov cx, ax
add ecx, 0x2750d5e1
mov ax, cx
mov word [0x4a8fa0], ax
mov ecx, dword [esp + 0x58]
cmp ecx, dword [esp + 0x5c]
jle 0x401c86
mov dword [0x49ca2c], 0x150bc01
jmp 0x401eea
mov eax, dword [0x493ac8]
mov ecx, dword [0x49c824]
xor ecx, eax
mov dword [0x49c824], ecx
test byte [esp + 0x77], 1
je 0x401e4f
mov eax, dword [esp + 0x58]
movzx eax, byte [esp + eax + 0x51]
cmp eax, 0x3d
jle 0x401e4f
mov dword [0x49f6d0], 0xac57c407
mov eax, dword [esp + 0x58]
movzx eax, byte [esp + eax + 0x51]
cmp eax, 0x3e
jne 0x401d4d
mov eax, 0xdfe7feff
mov ecx, dword [0x496740]
xor ecx, 0xffffffff
xor ecx, 0xeceaf486
cmp eax, ecx
jl 0x401cfd
mov eax, dword [0x496cb8]
add eax, 0x49ac12c1
mov dword [0x496cb8], eax
mov ecx, dword [esp + 0x78]
mov eax, esp
lea edx, [esp + 0x4d]
mov dword [eax], edx
call fcn.00419f20
sub esp, 4
mov si, word [0x4a81c4]
mov cx, si
dec ecx
mov di, cx
mov word [0x4a81c4], di
movsx ecx, si
and ecx, 0x93773ea6
xor ecx, 0xa82654d7
mov edx, dword [0x4a2c7c]
imul edx, ecx
mov dword [0x4a2c7c], edx
mov dword [esp + 0x24], eax
jmp 0x401df1
mov eax, 0xdeb088c
mov cx, word [0x4a485c]
movsx edx, cx
imul edx, edx, 0x53c91d37
cmp eax, edx
jge 0x401da0
mov eax, 0xdfc9e950
mov ecx, dword [0x497914]
mov edx, ecx
inc edx
mov dword [0x497914], edx
add ecx, 0x95b278fb
cmp eax, ecx
jl 0x401d9b
mov eax, dword [0x49a2ec]
or eax, 0x4a5ea46e
mov dword [0x49a2ec], eax
jmp 0x401dbd
mov eax, dword [0x49e1e8]
mov ecx, eax
dec ecx
mov dword [0x49e1e8], ecx
mov ecx, dword [0x4a17a8]
lea eax, [ecx + eax - 1]
mov dword [0x4a17a8], eax
mov ecx, dword [esp + 0x78]
mov eax, esp
lea edx, [esp + 0x49]
mov dword [eax], edx
call fcn.00419f20
sub esp, 4
mov si, word [0x4a5df6]
movsx ecx, si
imul ecx, ecx, 0x56cfcc0c
add ecx, 0x397a568f
mov dword [0x4952dc], ecx
mov dword [esp + 0x20], eax
mov eax, 0x389ebb10
mov ecx, dword [0x49e644]
inc ecx
mov dword [0x49e644], ecx
mov edx, dword [0x494f54]
and ecx, edx
cmp eax, ecx
jge 0x401e32
mov ax, word [0x4a3c3a]
movsx ecx, ax
sar ecx, 9
mov edx, dword [0x491da8]
and edx, ecx
mov dword [0x491da8], edx
jmp 0x401e4a
mov ax, word [0x4a7082]
mov cx, ax
add ecx, 0xc3138649
mov ax, cx
mov word [0x4a7082], ax
jmp 0x401ea6
mov eax, dword [0x495088]
xor eax, 0xf9a9
mov cx, word [0x4aae0a]
mov dx, cx
sub edx, eax
mov cx, dx
mov word [0x4aae0a], cx
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x58]
movzx eax, byte [esp + eax + 0x51]
mov edx, dword [esp + 0x40]
movsx eax, byte [edx + eax]
mov edx, esp
mov dword [edx], eax
call fcn.00416c80
sub esp, 4
mov ecx, dword [0x492748]
or ecx, 0xa102ef65
mov dword [0x492748], ecx
mov dword [esp + 0x1c], eax
mov ax, word [0x4a7752]
movsx ecx, ax
mov edx, 0x1ce82e56
sub edx, ecx
mov ecx, dword [0x493134]
xor ecx, edx
mov dword [0x493134], ecx
mov ecx, dword [esp + 0x58]
inc ecx
mov dword [esp + 0x58], ecx
mov ax, word [0x4aa24c]
mov cx, ax
xor ecx, 0x3a83
mov ax, cx
mov word [0x4aa24c], ax
jmp 0x401c51
jmp 0x401eef
cmp dword [esp + 0x5c], 3
jge 0x402054
mov eax, dword [0x494ae4]
or eax, 0x435fa51c
mov dword [0x494ae4], eax
mov eax, dword [esp + 0x5c]
inc eax
mov dword [esp + 0x5c], eax
mov eax, dword [0x497350]
inc eax
mov dword [0x497350], eax
mov ecx, dword [0x49957c]
xor ecx, eax
mov dword [0x49957c], ecx
test byte [esp + 0x77], 1
je 0x401f6e
mov word [0x4a640c], 0xa310
mov ecx, dword [esp + 0x78]
mov eax, esp
lea edx, [esp + 0x45]
mov dword [eax], edx
call fcn.00419f20
sub esp, 4
mov ecx, dword [0x4a2c70]
xor ecx, 0x902c92fb
mov dword [0x4a2c70], ecx
mov dword [esp + 0x18], eax
jmp 0x402014
mov eax, 0x90245020
mov ecx, dword [0x498d28]
mov edx, ecx
dec edx
mov dword [0x498d28], edx
mov si, word [0x4a92ce]
mov dx, si
dec edx
mov si, dx
mov word [0x4a92ce], si
movsx edx, si
add ecx, edx
mov si, word [0x4a83a4]
movsx edx, si
sar edx, 6
and ecx, edx
cmp eax, ecx
jg 0x401fbc
mov word [0x4a77b6], 0x98ce
mov ecx, dword [esp + 0x78]
mov eax, esp
mov dword [eax], 0x3d
call fcn.00416c80
sub esp, 4
mov dx, word [0x4abb50]
movsx ecx, dx
shl ecx, 4
add ecx, 0x2137bcb7
mov esi, dword [0x49bf18]
mov edi, dword [0x492e3c]
xor edi, 0xffffffff
and esi, edi
cmp ecx, esi
mov dword [esp + 0x14], eax
je 0x40200f
mov eax, dword [0x497c74]
add eax, 0xae7e2fbb
mov dword [0x497c74], eax
jmp 0x402014
mov ax, word [0x4a9d1a]
mov cx, ax
dec ecx
mov dx, cx
mov word [0x4a9d1a], dx
movsx ecx, ax
imul ecx, ecx, 0x427b0de
mov esi, dword [0x49461c]
inc esi
mov dword [0x49461c], esi
sub ecx, esi
mov esi, dword [0x495b90]
imul esi, ecx
mov dword [0x495b90], esi
jmp 0x401eef
mov eax, dword [0x49a3a8]
mov ecx, dword [0x492c58]
imul ecx, eax
mov dword [0x492c58], ecx
mov eax, 0x48f01146
mov cx, word [0x4ac3f4]
movsx edx, cx
imul edx, edx, 0x872e3aa3
mov esi, dword [0x49234c]
and edx, esi
cmp eax, edx
jg 0x4020a5
mov ax, word [0x4a80e6]
mov cx, ax
or ecx, 0xd578
mov ax, cx
mov word [0x4a80e6], ax
mov eax, 0xfb79fdab
mov ecx, dword [esp + 0x40]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x41
mov dword [esp + 0x10], eax
call fcn.00422f30
mov eax, dword [0x49a818]
add eax, 0x6680b994
mov dword [0x49a818], eax
mov eax, esp
lea ecx, [esp + 0x4d]
mov dword [eax], ecx
mov dword [eax + 4], 4
call fcn.00447960
mov eax, dword [0x49c42c]
mov ecx, eax
dec ecx
mov dword [0x49c42c], ecx
and eax, 0x57577cce
mov ecx, dword [esp + 0x10]
cmp ecx, eax
jl 0x402113
mov eax, dword [0x498038]
and eax, 0xfd8ccdd4
mov dword [0x498038], eax
mov eax, 0x9c85f265
mov ecx, esp
lea edx, [esp + 0x49]
mov dword [ecx], edx
mov dword [ecx + 4], 4
mov dword [esp + 0xc], eax
call fcn.00447960
mov si, word [0x4aa380]
movsx eax, si
sar eax, 5
sub eax, 0x6fbba368
or eax, 0x3f5bbfb
mov ecx, dword [esp + 0xc]
cmp ecx, eax
je 0x402162
mov eax, dword [0x49cb84]
or eax, 0x7ad0b0eb
mov dword [0x49cb84], eax
mov eax, 0x2b961ac0
mov ecx, esp
lea edx, [esp + 0x45]
mov dword [ecx], edx
mov dword [ecx + 4], 4
mov dword [esp + 8], eax
call fcn.00447960
mov eax, dword [0x495568]
mov ecx, dword [esp + 8]
cmp ecx, eax
je 0x4021a8
mov ax, word [0x4a3d2a]
mov cx, ax
and ecx, 0xb89a
mov ax, cx
mov word [0x4a3d2a], ax
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret