Function at 0x423b50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x170
mov esi, esp
push eax
sub esp, 0x2c
mov dword [esi + 0x70], esp
sub esp, 0x38
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x7c], eax
mov esp, eax
push eax
mov dword [esi + 0x9c], esp
sub esp, 0x14
mov dword [esi + 0x80], esp
sub esp, 0x20
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x84], eax
mov esp, eax
push eax
mov dword [esi + 0x98], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x78], eax
mov esp, eax
mov dword [esi + 0x28], 0xcb8bcdb1
mov dword [esi + 0x2c], 0xc776c978
mov dword [esi + 0x30], 0xc363c598
mov dword [esi + 0x34], 0xdf7fc14c
mov dword [esi + 0x38], 0xdbdadda1
lea eax, [esi + 0x3c]
mov dword [esi + 0x3c], 0
mov dword [esi + 0x40], 0
mov byte [esi + 0x44], 0
mov dword [esi + 0xbc], 0
mov ecx, dword [esi + 0xbc]
cmp ecx, 0x1c
ja 0x423c4d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0xbc]
mov edx, dword [esi + 0xbc]
movzx edx, byte [esi + edx + 0x28]
lea edi, [ecx - 0x467b761e]
add ecx, 0xe2
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 0x128], edi
mov ecx, dword [esi + 0x128]
add cl, 0xd2
mov edx, dword [esi + 0xbc]
mov byte [esi + edx + 0x28], cl
inc dword [esi + 0xbc]
mov ecx, dword [esi + 0xbc]
cmp ecx, 0x1d
jb 0x423c00
lea ebx, [esi + 0x154]
lea edx, [esi + 0x28]
mov ecx, 5
mov edi, ebx
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esi + 0x168]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esi + 0xa0]
push edi
push 0
push 0
push 9
push ebx
push 0
call dword [0x4491d4]
mov ebx, dword [esi + 0xa0]
test ebx, ebx
jns 0x423c97
mov eax, 0xffffffff
jmp 0x423c9a
lea eax, [ebx + ebx]
push eax
call fcn.00409390
add esp, 4
push edi
push ebx
mov dword [esi + 0x74], eax
push eax
push 9
lea eax, [esi + 0x154]
push eax
push 0
call dword [0x4491d4]
mov dword [esi + 0x28], 0x8b738d50
mov dword [esi + 0x2c], 0x87798907
mov dword [esi + 0x30], 0x830c8577
mov dword [esi + 0x34], 0x9f9e817c
lea eax, [esi + 0x38]
mov dword [esi + 0x38], 0
mov byte [esi + 0x3c], 0
mov dword [esi + 0xbc], 0
mov ecx, dword [esi + 0xbc]
cmp ecx, 0x14
ja 0x423d55
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0xbc]
mov edx, dword [esi + 0xbc]
movzx edi, byte [esi + edx + 0x28]
lea edx, [ecx + 0x611aa942]
mov ebx, edi
not ebx
or ebx, edx
and edx, edi
add edx, ebx
neg edx
add ecx, edx
add ecx, 0x611aa941
mov dword [esi + 0x128], ecx
mov ecx, dword [esi + 0x128]
add cl, 0x32
mov edx, dword [esi + 0xbc]
mov byte [esi + edx + 0x28], cl
inc dword [esi + 0xbc]
mov ecx, dword [esi + 0xbc]
cmp ecx, 0x15
jb 0x423d00
lea edi, [esi + 0x144]
lea edx, [esi + 0x28]
mov ecx, 4
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esi + 0x154]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esi + 0x28], 0x4bcb5592
mov dword [esi + 0x2c], 0x4fad49df
mov dword [esi + 0x30], 0x43da4ddf
mov dword [esi + 0x34], 0x478541a6
mov dword [esi + 0x38], 0x7bd645a1
mov dword [esi + 0x3c], 0x7fee799d
mov dword [esi + 0x40], 0x737c7df1
lea eax, [esi + 0x44]
mov dword [esi + 0x44], 0
mov dword [esi + 0x104], 0
mov ecx, dword [esi + 0x104]
cmp ecx, 0x1f
ja 0x423e3b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x104]
mov edx, dword [esi + 0x104]
movzx edi, byte [esi + edx + 0x28]
lea edx, [ecx + edi]
add edx, 0x75aa728d
add ecx, 0x75aa728d
and ecx, edi
add ecx, ecx
mov edi, edx
not edi
and edi, ecx
not ecx
and ecx, edx
sub ecx, edi
mov dword [esi + 0xbc], ecx
mov ecx, dword [esi + 0xbc]
add cl, 0x25
mov edx, dword [esi + 0x104]
mov byte [esi + edx + 0x28], cl
mov ecx, dword [esi + 0x104]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esi + 0x104], ecx
mov ecx, dword [esi + 0x104]
cmp ecx, 0x20
jb 0x423dd0
lea edi, [esi + 0x128]
lea ebx, [esi + 0x28]
mov ecx, 7
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea edi, [esi + 0x144]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esi + 0x28], 0x63f3652a
mov dword [esi + 0x2c], 0x6f0d61ff
mov dword [esi + 0x30], 0x6bf26dff
mov dword [esi + 0x34], 0x97186906
mov dword [esi + 0x38], 0x93da95ea
lea eax, [esi + 0x3c]
mov dword [esi + 0x58], eax
mov word [esi + 0x3c], 0x9192
mov dword [esi + 0x3e], 0
mov byte [esi + 0x42], 0
mov dword [esi + 0xc], 0
mov eax, dword [esi + 0xc]
cmp eax, 0x1a
ja 0x423ef6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0xc]
movzx ecx, byte [esi + ecx + 0x28]
lea edi, [eax - 0x339e098f]
lea edx, [eax + 0x71]
xor edx, edi
and edi, ecx
and edx, ecx
add eax, ecx
add eax, 0xcc61f671
lea ecx, [edx + edi*2]
sub eax, ecx
mov dword [esi + 0xbc], eax
mov eax, dword [esi + 0xbc]
add al, 0xe9
mov ecx, dword [esi + 0xc]
mov byte [esi + ecx + 0x28], al
inc dword [esi + 0xc]
mov eax, dword [esi + 0xc]
cmp eax, 0x1b
jb 0x423eb0
mov eax, dword [esi + 0x70]
mov dword [esi + 0x94], eax
mov eax, dword [esi + 0x80]
mov dword [esi + 0x90], eax
lea edi, [esi + 0x104]
lea edx, [esi + 0x28]
mov ecx, 5
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, dword [esi + 0x74]
mov dword [esi + 0x88], edx
lea edi, [esi + 0x118]
mov ecx, 1
mov ebx, dword [esi + 0x58]
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
lea ecx, [esi + 0x144]
mov dword [esi + 0x11c], ecx
lea ecx, [esi + 0x128]
mov dword [esi + 0x120], ecx
lea ecx, [esi + 0x104]
mov dword [esi + 0x124], ecx
mov ebx, dword [esi + 0x70]
lea ecx, [ebx + 0x2c]
mov dword [esi + 0xfc], ecx
lea ecx, [eax + 0x10]
mov dword [esi + 0xf8], ecx
add edx, 2
add ebx, 2
add eax, 2
mov dword [esi + 0x80], eax
xor ecx, ecx
xor eax, eax
mov dword [esi + 0x68], 0
cmp ecx, 3
setne al
mov ecx, dword [esi + 0x7c]
lea edi, [ecx + 0x2c]
mov dword [esi + 0xf4], edi
lea ecx, [ecx + 0x2e]
mov dword [esi + 0xf0], ecx
mov ecx, dword [esi + 0x84]
lea edi, [ecx + 0x10]
mov dword [esi + 0xec], edi
add ecx, 0x12
mov dword [esi + 0xe8], ecx
mov ecx, dword [esi + 0x78]
add ecx, 4
mov dword [esi + 0xe4], ecx
xor ecx, ecx
mov dword [esi + 0x70], ebx
mov dword [esi + 0x74], edx
jmp dword [eax*4 + 0x444428]
mov dword [esi + 0xe0], ecx
mov ecx, dword [esi + ecx*4 + 0x11c]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x424000
mov dword [esi + 0x58], ecx
mov dword [esi + 0xb4], eax
sar eax, 1
mov dword [esi + 0x8c], eax
mov dword [esi + 0x28], 0x6bde6dc8
mov dword [esi + 0x2c], 0x67f969fb
mov dword [esi + 0x30], 0x63f665c5
mov dword [esi + 0x34], 0x5ff16100
mov dword [esi + 0x38], 0x5bfb5dd0
mov dword [esi + 0x3c], 0x57cb59d4
mov word [esi + 0x40], 0x5554
lea ebx, [esi + 0x40]
mov word [ebx + 0xe], 0
mov dword [ebx + 0xa], 0
mov dword [ebx + 6], 0
mov dword [ebx + 2], 0
mov dword [esi + 0x5c], 0
mov eax, dword [esi + 0x5c]
cmp eax, 0x27
ja 0x4240b8
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x5c]
mov ecx, dword [esi + 0x5c]
movzx ecx, byte [esi + ecx + 0x28]
lea edx, [eax + 0x793abe52]
and edx, ecx
add eax, ecx
add eax, 0x793abe52
add edx, edx
sub eax, edx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
add al, 0xc2
mov ecx, dword [esi + 0x5c]
mov byte [esi + ecx + 0x28], al
inc dword [esi + 0x5c]
mov eax, dword [esi + 0x5c]
cmp eax, 0x28
jb 0x424080
lea edi, [esi + 0xbc]
lea eax, [esi + 0x28]
mov ecx, 6
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
mov ecx, 1
lea edi, [esi + 0xd4]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esi + 0xa0]
inc eax
mov ecx, eax
mov edx, dword [esi + 0x8c]
and ecx, edx
xor eax, edx
lea edx, [eax + ecx*2]
lea ecx, [eax + ecx*2]
add ecx, 0xc
lea eax, [edx + edx]
add eax, 0x18
test ecx, ecx
jns 0x424107
mov eax, 0xffffffff
push eax
call fcn.00409390
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x88]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x424141
mov edx, dword [esi + 0x74]
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424130
mov word [eax], 0x5c
add eax, 2
mov edx, dword [esi + 0x58]
movzx ecx, word [edx]
test cx, cx
je 0x424171
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424160
mov word [eax], 0
movzx ecx, word [esi + 0xbc]
test cx, cx
je 0x4241a1
lea edx, [esi + 0xbe]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424190
mov word [eax], 0
lea eax, [esi + 0xb8]
push 0x60
push 3
push 0x120089
push eax
push edi
call fcn.0043aca0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x444430]
xor ebx, ebx
jmp dword [0x4444a0]
lea eax, [esi + 0x100]
push 0
push eax
push dword [esi + 0xb8]
call fcn.0043b020
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [esi + 0x1c], 0
mov dword [esi + 0xdc], edi
jmp dword [eax*4 + 0x444438]
mov edi, dword [esi + 0x100]
lea eax, [edi + 1]
push eax
call fcn.00409390
add esp, 4
push 0
push edi
mov dword [esi + 0xd8], eax
push eax
push dword [esi + 0xb8]
call fcn.0043b130
add esp, 0x10
not eax
shr eax, 0x1f
mov dword [esi + 0x1c], 0
jmp dword [eax*4 + 0x444440]
mov eax, dword [esi + 0x100]
mov ecx, dword [esi + 0xd8]
mov byte [ecx + eax], 0
push ecx
call fcn.00401f70
add esp, 4
mov edi, eax
xor eax, eax
test edi, edi
setne al
mov dword [esi + 0x1c], 0
mov dword [esi + 0xb0], edi
jmp dword [eax*4 + 0x444448]
jmp dword [0x444454]
jmp dword [0x444498]
mov eax, dword [esi + 0xb8]
mov dword [esi + 0x28], 0x3a393837
mov byte [ebx - 0x10], 0
mov dword [ebx - 0x14], 0
mov dword [esi + 0x5c], 0
mov ecx, dword [esi + 0x5c]
cmp ecx, 8
ja 0x424ad5
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x5c]
mov edx, dword [esi + 0x5c]
movzx edx, byte [esi + edx + 0x28]
lea edi, [ecx + 0x5013d707]
add ecx, 7
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 0xc], edi
mov ecx, dword [esi + 0xc]
add cl, 0xcf
mov edx, dword [esi + 0x5c]
mov byte [esi + edx + 0x28], cl
inc dword [esi + 0x5c]
mov ecx, dword [esi + 0x5c]
cmp ecx, 9
jb 0x424aa0
mov ecx, dword [0x4491d8]
test ecx, ecx
je 0x424b10
mov edx, dword [esi + 0x28]
xor edi, edi
mov ebx, dword [0x4491dc]
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x424b00
inc edi
cmp ecx, edi
jne 0x424af0
jmp 0x424b10
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x424b3f
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esi + 0xdc]
mov ebx, dword [esi + 0x1c]
jmp dword [0x4444a0]
push eax
push 1
push dword [0x4491e0]
push ecx
call fcn.00438180
add esp, 0x10
mov edi, dword [esi + 0xdc]
mov ebx, dword [esi + 0x1c]
jmp dword [0x4444a0]
xor ecx, ecx
test eax, eax
setne cl
mov dword [esi + 0x1c], 0
jmp dword [ecx*4 + 0x444460]
mov dword [esi + 0x28], 0x33c83507
mov dword [esi + 0x2c], 0xcf0231c2
mov dword [esi + 0x30], 0xcb44cd42
mov dword [esi + 0x34], 0xc7c8c946
mov word [esi + 0x38], 0
mov dword [esi + 0x6c], 0
mov eax, dword [esi + 0x6c]
cmp eax, 0x11
ja 0x424bf1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x6c]
mov ecx, dword [esi + 0x6c]
movzx edx, byte [esi + ecx + 0x28]
lea ecx, [eax + edx]
add ecx, 0x86666b79
add eax, 0x79
and eax, edx
add eax, eax
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
add al, 0xb1
mov ecx, dword [esi + 0x6c]
mov byte [esi + ecx + 0x28], al
inc dword [esi + 0x6c]
mov eax, dword [esi + 0x6c]
cmp eax, 0x12
jb 0x424bb0
lea edi, [esi + 0xc]
lea eax, [esi + 0x28]
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea eax, [esi + 0x38]
lea edi, [esi + 0x1c]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, dword [esi + 0xb4]
lea eax, [ecx + 0x10]
cmp ecx, 0xffffffef
jge 0x424c20
mov eax, 0xffffffff
push eax
call fcn.00409390
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x58]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x424c51
mov eax, dword [esi + 0x58]
lea edx, [eax + 2]
mov eax, edi
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424c40
mov word [eax], 0
movzx ecx, word [esi + 0xc]
test cx, cx
je 0x424c81
lea edx, [esi + 0xe]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x424c70
mov word [eax], 0
mov ecx, dword [ebp + 8]
push dword [esi + 0xa4]
push dword [esi + 0xa8]
push edi
call fcn.00409d30
mov dword [esi + 0x1c], eax
jmp dword [0x444468]
push edi
call fcn.004093a0
add esp, 4
push 0x2e0ec9bb
push dword [0x4491cc]
call fcn.0043a090
add esp, 8
push dword [esi + 0xa8]
call eax
mov eax, dword [case.0x423fd7.14]
mov edi, dword [esi + 0xb0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x444480]
push dword [esi + 0x54]
call fcn.004093a0
add esp, 4
push edi
call fcn.00402fe0
add esp, 4
mov eax, dword [case.0x423fd7.26]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
push edi
call fcn.00402a10
add esp, 4
mov dword [esi + 0x28], 0xe153807
mov dword [esi + 0x2c], 0x300363c
mov dword [esi + 0x30], 0x363e36fc
mov dword [esi + 0x34], 0xb380e04
mov dword [esi + 0x38], 0x3625393d
mov word [esi + 0x3c], 0x639
mov byte [esi + 0x3e], 0x80
mov byte [ebx + 3], 0
mov dword [ebx - 1], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x1b
ja 0x424da9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [esi + edx + 0x28]
mov edi, ecx
and edi, 0xc71b1299
xor ecx, 0x471b1299
lea ecx, [ecx + edi*2]
xor ecx, edx
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xc]
add cl, 0xd1
mov edx, dword [esi + 4]
mov byte [esi + edx + 0x28], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x1c
jb 0x424d70
lea ecx, [esi + 0x28]
push ecx
push eax
call fcn.00402df0
add esp, 8
mov ebx, 0xffffffff
mov edx, 0xfffffffd
mov ecx, ebx
add edx, 3
cmp byte [eax + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x424dc0
shr edx, 2
movzx ecx, byte [eax + ebx - 1]
cmp ecx, 0x3d
je 0x424de1
cmp ecx, 0x2e
jne 0x424de2
dec edx
movzx ecx, byte [eax + ebx - 2]
cmp ecx, 0x3d
mov dword [esi + 0x64], eax
je 0x424df4
cmp ecx, 0x2e
jne 0x424df5
dec edx
mov dword [esi + 0xac], edx
lea eax, [edx + 1]
push eax
call fcn.00409390
add esp, 4
mov dword [esi + 0x54], eax
test ebx, ebx
je 0x424f09
xor ecx, ecx
mov edi, 2
mov dword [esi + 0x24], ebx
jmp 0x424e33
mov ebx, dword [esi + 0x24]
lea eax, [edi + 4]
add edi, 2
cmp edi, ebx
mov edi, eax
jae 0x424f09
mov dword [esi + 0x1c], ecx
mov ebx, dword [esi + 0x64]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.00419140
add esp, 4
mov byte [esi + 0x20], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.00419140
mov edx, dword [esi + 0x1c]
add esp, 4
movzx ecx, byte [esi + 0x20]
shl cl, 2
mov ah, al
shr ah, 4
and ah, 3
or ah, cl
mov ecx, dword [esi + 0x54]
mov byte [ecx + edx], ah
lea ecx, [edx + 1]
cmp edi, dword [esi + 0x24]
jae 0x424e20
mov byte [esi + 0x20], al
movzx eax, byte [ebx + edi]
push eax
mov ebx, ecx
call fcn.00419140
mov ecx, ebx
add esp, 4
cmp al, 0x40
mov ebx, dword [esi + 0x24]
je 0x424e23
movzx edx, al
mov ecx, edx
not ecx
or ecx, 0x3c
add edx, ecx
inc edx
movzx ecx, byte [esi + 0x20]
shl cl, 4
shr edx, 2
add dl, cl
mov byte [esi + 0xb], al
mov eax, dword [esi + 0x1c]
lea ecx, [eax + 2]
mov dword [esi + 0x20], ecx
mov ecx, dword [esi + 0x54]
mov byte [ecx + eax + 1], dl
lea eax, [edi + 1]
cmp eax, ebx
jae 0x424f01
mov eax, dword [esi + 0x64]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.00419140
add esp, 4
cmp al, 0x40
mov ecx, dword [esi + 0x20]
movzx edx, byte [esi + 0xb]
je 0x424e23
shl dl, 6
add al, dl
mov ecx, dword [esi + 0x54]
mov edx, dword [esi + 0x1c]
mov byte [ecx + edx + 2], al
add edx, 3
mov ecx, edx
jmp 0x424e23
mov ecx, dword [esi + 0x20]
jmp 0x424e23
mov eax, dword [esi + 0xac]
add eax, 0xfffffffb
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 0x54]
add eax, 5
mov dword [esi + 0x60], eax
mov dword [esi + 0xa4], 0
mov dword [esi + 0xa8], 0
push 0x932a8d34
push dword [0x4491e4]
call fcn.0043a090
add esp, 8
lea ecx, [esi + 0xa4]
lea edx, [esi + 0x5c]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
lea ebx, [esi + 0x40]
mov edi, dword [esi + 0xb0]
jmp dword [0x444458]
push edi
call fcn.00402a10
add esp, 4
mov dword [esi + 0x28], 0xe153807
mov dword [esi + 0x2c], 0x300363c
mov dword [esi + 0x30], 0x363e36fc
mov dword [esi + 0x34], 0xb380e04
mov dword [esi + 0x38], 0x3625393d
mov word [esi + 0x3c], 0x639
mov byte [esi + 0x3e], 0x80
mov byte [ebx + 3], 0
mov dword [ebx - 1], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x1b
ja 0x424ff9
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [esi + edx + 0x28]
mov edi, ecx
and edi, 0xc71b1299
xor ecx, 0x471b1299
lea ecx, [ecx + edi*2]
xor ecx, edx
mov dword [esi + 0xc], ecx
mov ecx, dword [esi + 0xc]
add cl, 0xd1
mov edx, dword [esi + 4]
mov byte [esi + edx + 0x28], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x1c
jb 0x424fc0
lea ecx, [esi + 0x28]
push ecx
push eax
call fcn.00402df0
add esp, 8
mov ecx, 0xffffffff
mov edx, 0xfffffffd
add edx, 3
cmp byte [eax + ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x425010
shr edx, 2
mov edi, ecx
mov dword [esi + 0x24], ecx
movzx ecx, byte [eax + ecx - 1]
cmp ecx, 0x3d
je 0x425034
cmp ecx, 0x2e
jne 0x425035
dec edx
mov ecx, dword [esi + 0x24]
movzx ecx, byte [eax + ecx - 2]
cmp ecx, 0x3d
mov dword [esi + 0x54], eax
je 0x42504a
cmp ecx, 0x2e
jne 0x42504b
dec edx
mov dword [esi + 0xac], edx
lea eax, [edx + 1]
push eax
call fcn.00409390
add esp, 4
mov dword [esi + 0x64], eax
cmp dword [esi + 0x24], 0
je 0x42516c
xor edx, edx
mov edi, 2
jmp 0x425090
mov edx, dword [esi + 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [edi + 4]
add edi, 2
cmp edi, ecx
mov edi, eax
jae 0x42516c
mov dword [esi + 0x1c], edx
mov ebx, dword [esi + 0x54]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.00419140
add esp, 4
mov byte [esi + 0x20], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.00419140
mov ecx, dword [esi + 0x24]
add esp, 4
movzx edx, byte [esi + 0x20]
shl dl, 2
mov ah, al
shr ah, 4
and ah, 3
or ah, dl
mov edx, dword [esi + 0x64]
mov ebx, dword [esi + 0x1c]
mov byte [edx + ebx], ah
lea edx, [ebx + 1]
cmp edi, ecx
jae 0x425080
mov byte [esi + 0x20], al
mov eax, dword [esi + 0x54]
movzx eax, byte [eax + edi]
push eax
mov ebx, edx
call fcn.00419140
mov edx, ebx
mov ecx, dword [esi + 0x24]
add esp, 4
cmp al, 0x40
je 0x425080
mov byte [esi + 0xb], al
movzx eax, al
mov ecx, eax
not ecx
or ecx, 0x3c
add eax, ecx
inc eax
mov ecx, dword [esi + 0x24]
movzx edx, byte [esi + 0x20]
shl dl, 4
shr eax, 2
add al, dl
mov ebx, dword [esi + 0x1c]
lea edx, [ebx + 2]
mov dword [esi + 0x20], edx
mov edx, dword [esi + 0x64]
mov byte [edx + ebx + 1], al
lea eax, [edi + 1]
cmp eax, ecx
jae 0x425073
mov eax, dword [esi + 0x54]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.00419140
mov ecx, dword [esi + 0x24]
add esp, 4
cmp al, 0x40
mov edx, dword [esi + 0x20]
mov ah, byte [esi + 0xb]
je 0x425080
shl ah, 6
add al, ah
mov edx, dword [esi + 0x64]
mov ebx, dword [esi + 0x1c]
mov byte [edx + ebx + 2], al
add ebx, 3
mov edx, ebx
jmp 0x425080
mov eax, dword [esi + 0xac]
add eax, 0xfffffffb
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 0x64]
add eax, 5
mov dword [esi + 0x60], eax
mov dword [esi + 0xa4], 0
mov dword [esi + 0xa8], 0
push 0x932a8d34
push dword [0x4491e4]
call fcn.0043a090
add esp, 8
lea ecx, [esi + 0xa4]
lea edx, [esi + 0x5c]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
lea ebx, [esi + 0x40]
mov edi, dword [esi + 0xb0]
jmp case.0x423fd7.11
mov edi, dword [esi + 0x88]
jmp dword [0x444550]