Function at 0x41f16b
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x6c
push eax
sub esp, 8
mov ebx, esp
sub esp, 0x2c
mov esi, esp
sub esp, 0x400
mov dword [ebp - 0x30], esp
push eax
mov dword [ebp - 0x78], esp
sub esp, 8
mov edi, esp
sub esp, 0x24
mov dword [ebp - 0x70], esp
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x5c], 0x73866d9b
mov dword [ebp - 0x58], 0x77977195
mov dword [ebp - 0x54], 0x7b487599
mov dword [ebp - 0x50], 0x7f86799d
mov dword [ebp - 0x4c], 0x3027d99
mov dword [ebp - 0x18], 0
mov eax, dword [ebp - 0x18]
cmp eax, 0x13
ja 0x41e16c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x18]
movzx ecx, byte [ebp + ecx - 0x5c]
add eax, 0xcf5fdae
xor eax, ecx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
add al, 0x3e
mov ecx, dword [ebp - 0x18]
mov byte [ebp + ecx - 0x5c], al
inc dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
cmp eax, 0x14
jb 0x41e140
lea eax, [ebp - 0x5c]
lea ecx, [ebp - 0x68]
push eax
call fcn.00433f50
shr eax, 0x1f
xor ecx, ecx
mov dword [ebp - 0x74], edi
jmp dword [eax*4 + 0x43fdc0]
lea ecx, [ebp - 0x68]
push 0x410
call fcn.00434170
not eax
shr eax, 0x1f
xor ecx, ecx
jmp dword [eax*4 + 0x43fdc8]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x38], eax
mov dword [esi], 0x321bc035
mov dword [esi + 4], 0xd8d20d28
mov dword [esi + 8], 0x2cd52b09
mov dword [esi + 0xc], 0x37de2605
mov dword [esi + 0x10], 0xd8030a36
mov dword [esi + 0x14], 0x1f3c363d
mov dword [esi + 0x18], 0x1a113e12
mov dword [esi + 0x1c], 0x163f140b
mov dword [esi + 0x20], 0x3608060a
mov dword [esi + 0x24], 0xe2b3519
mov dword [esi + 0x28], 0x63322929
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x2b
ja 0x41e23a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [esi + ecx]
add eax, 0x523f7fcc
xor eax, ecx
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
add al, 0x6c
mov ecx, dword [ebp - 0x10]
mov byte [esi + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x2c
jb 0x41e210
lea ecx, [ebp - 0x68]
push 0
push 0x2b
push esi
push ebx
call fcn.004346f0
mov esi, dword [ebx]
mov dword [ebp - 0x6c], ebx
mov ebx, dword [ebx + 4]
xor eax, eax
cmp esi, ebx
sete al
jmp dword [eax*4 + 0x43fdd0]
mov eax, esi
not eax
and eax, ebx
mov ecx, ebx
not ecx
and ecx, esi
sub eax, ecx
sar eax, 2
mov edx, eax
and edx, 0x421
mov ecx, eax
or eax, 0x421
imul eax, edx
xor edx, 0x421
and ecx, 0xfffffbde
imul ecx, edx
add eax, ecx
push eax
call fcn.00409510
add esp, 4
inc dword [ebp - 0x30]
mov dword [ebp - 0x44], 0
xor ecx, ecx
mov dword [ebp - 0x48], ebx
cmp esi, ebx
setne cl
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x24], eax
jmp dword [ecx*4 + 0x43fdd8]
add esi, 4
xor eax, eax
cmp esi, dword [ebp - 0x48]
setne al
jmp dword [eax*4 + 0x43fdd8]
mov dword [ebp - 0x20], esi
mov esi, dword [esi]
push 0x400
push 0
mov ebx, dword [ebp - 0x38]
push ebx
call fcn.00409590
add esp, 0xc
lea ecx, [ebp - 0x68]
mov edi, dword [ebp - 0x78]
push edi
push 0x400
push ebx
push esi
call fcn.004345a0
cmp eax, 0xc0000000
setae al
cmp dword [edi], 0
sete cl
or cl, al
movzx eax, cl
jmp dword [eax*4 + 0x43fde8]
mov eax, 1
mov esi, dword [ebp - 0x20]
jmp dword [eax*4 + 0x43fdf0]
xor eax, eax
mov esi, dword [ebp - 0x20]
jmp dword [eax*4 + 0x43fdf0]
mov ecx, dword [ebp - 0x38]
mov byte [ecx + 0x3ff], 0
movzx eax, byte [ecx]
xor ebx, ebx
test al, al
je 0x41e361
nop
cmp al, 0x2e
je 0x41e35f
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x41e350
jmp 0x41e361
mov ebx, ecx
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x43fdf8]
movzx ecx, byte [ebx + 1]
inc ebx
xor eax, eax
test cl, cl
je 0x41e392
mov edx, ebx
nop
nop
nop
nop
cmp cl, 0x2e
je 0x41e390
movzx ecx, byte [edx + 1]
inc edx
test cl, cl
jne 0x41e380
jmp 0x41e392
mov eax, edx
xor ecx, ecx
test eax, eax
setne cl
mov dword [ebp - 0x3c], ebx
jmp dword [ecx*4 + 0x43fe00]
mov esi, eax
not esi
and esi, ebx
mov edi, ebx
not edi
and edi, eax
mov edx, edi
sub edx, esi
lea ecx, [edx + edx*2]
shr ecx, 2
movzx eax, byte [ebx + edx - 1]
cmp eax, 0x3d
je 0x41e3c8
cmp eax, 0x2e
jne 0x41e3c9
dec ecx
mov dword [ebp - 0x1c], ecx
movzx eax, byte [ebx + edx - 2]
cmp eax, 0x3d
mov dword [ebp - 0x34], edx
je 0x41e3de
cmp eax, 0x2e
jne 0x41e3e4
mov eax, dword [ebp - 0x1c]
dec eax
jmp 0x41e3e7
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
inc eax
push eax
call fcn.00409510
add esp, 4
mov dword [ebp - 0x28], eax
cmp edi, esi
mov esi, dword [ebp - 0x34]
jne 0x41e441
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x28]
mov byte [esi + eax], 0
push esi
call fcn.00402400
add esp, 4
mov ebx, eax
jmp dword [0x43fe08]
push esi
call fcn.00409520
add esp, 4
push ebx
call fcn.00402e70
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43fe10]
mov esi, dword [ebp - 0x20]
jmp 0x41e5ec
xor ecx, ecx
mov edi, 2
jmp 0x41e465
mov edx, esi
lea eax, [edi + 4]
add edi, 2
mov ecx, ebx
cmp edi, edx
mov edi, eax
mov ebx, dword [ebp - 0x3c]
mov esi, edx
jae 0x41e3fe
mov dword [ebp - 0x2c], ecx
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.00416500
add esp, 4
mov ecx, ebx
mov ebx, eax
movzx eax, byte [ecx + edi - 1]
push eax
call fcn.00416500
add esp, 4
shl bl, 2
mov ecx, eax
shr cl, 4
and cl, 3
or cl, bl
mov edx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x2c]
mov byte [edx + ebx], cl
mov ecx, dword [ebp - 0x2c]
lea ebx, [ecx + 1]
cmp edi, esi
jae 0x41e450
mov byte [ebp - 0x11], al
mov eax, dword [ebp - 0x3c]
movzx eax, byte [eax + edi]
push eax
call fcn.00416500
mov edx, dword [ebp - 0x34]
add esp, 4
cmp al, 0x40
je 0x41e452
mov ch, al
movzx eax, byte [ebp - 0x11]
shl al, 4
mov cl, ch
shr cl, 2
and cl, 0xf
or cl, al
mov esi, dword [ebp - 0x2c]
lea ebx, [esi + 2]
mov eax, dword [ebp - 0x28]
mov byte [eax + esi + 1], cl
lea eax, [edi + 1]
cmp eax, edx
jae 0x41e452
mov eax, dword [ebp - 0x3c]
movzx eax, byte [eax + edi + 1]
push eax
mov byte [ebp - 0x11], ch
call fcn.00416500
movzx ecx, byte [ebp - 0x11]
mov edx, dword [ebp - 0x34]
add esp, 4
cmp al, 0x40
je 0x41e452
shl cl, 6
add al, cl
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x2c]
mov byte [ecx + ebx + 2], al
add ebx, 3
jmp 0x41e452
mov edi, dword [ebp - 0x74]
mov dword [edi], 0xf354989b
mov byte [edi + 4], 0
mov dword [ebp - 0x10], 0
mov ecx, dword [ebp - 0x10]
cmp ecx, 4
mov esi, dword [ebp - 0x38]
ja 0x41e57c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
movzx edx, byte [edi + edx]
add ecx, 0xcc0714fe
xor ecx, edx
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x5c]
add cl, 0xe
mov edx, dword [ebp - 0x10]
mov byte [edi + edx], cl
inc dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
cmp ecx, 5
jb 0x41e550
push edi
push eax
call fcn.00402c30
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43fe18]
mov edx, dword [ebp - 0x24]
jmp 0x41e5c3
movzx ecx, byte [eax]
test cl, cl
mov edx, dword [ebp - 0x24]
je 0x41e5bb
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x41e5b0
mov word [edx], 0x203a
add edx, 2
movzx eax, byte [esi]
test al, al
je 0x41e5dd
mov ecx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x20]
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41e5d0
jmp 0x41e5e0
mov esi, dword [ebp - 0x20]
mov byte [edx], 0xa
inc edx
mov dword [ebp - 0x24], edx
mov al, 1
mov dword [ebp - 0x44], eax
push ebx
call fcn.00403410
add esp, 4
add esi, 4
xor eax, eax
cmp esi, dword [ebp - 0x48]
setne al
jmp dword [eax*4 + 0x43fdd8]
mov ecx, dword [ebp - 0x44]
mov eax, ecx
and al, 1
movzx eax, al
mov ebx, dword [ebp - 0x6c]
jmp dword [eax*4 + 0x43fde0]
mov esi, dword [ebp - 0x40]
jmp dword [0x43fe20]
xor ecx, ecx
test esi, esi
jne 0x41e6e6
jmp case.0x41e180.1
mov edi, dword [ebp - 0x24]
mov byte [edi], 0
mov edx, dword [ebp - 0x70]
mov dword [edx], 0x373031e5
mov dword [edx + 4], 0x133f0039
mov dword [edx + 8], 0x160e0805
mov dword [edx + 0xc], 0x81838cb
mov dword [edx + 0x10], 0x3fc10635
mov dword [edx + 0x14], 0x19131803
mov dword [edx + 0x18], 0x304df03
mov dword [edx + 0x1c], 0x8506
mov byte [edx + 0x20], 0
mov esi, dword [ebp - 0x40]
sub edi, esi
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x20
ja 0x41e6ba
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [edx + ecx]
add eax, 0xb958e81b
xor eax, ecx
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
add al, 0x43
mov ecx, dword [ebp - 0x10]
mov byte [edx + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x21
jb 0x41e690
mov ecx, dword [ebp + 8]
push edi
push esi
push edx
call fcn.0040a320
mov ecx, eax
jmp dword [0x43fe20]
push esi
mov esi, ecx
call fcn.00409520
mov ecx, esi
add esp, 4
and cl, 1
mov esi, dword [ebx]
mov ebx, dword [ebx + 4]
test esi, esi
je case.0x41e180.1
cmp esi, ebx
je case.0x41e180.1
push esi
mov esi, ecx
call fcn.00409520
mov ecx, esi
add esp, 4
mov ebx, ecx
lea ecx, [ebp - 0x68]
call fcn.004342d0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
mov dword [ebp - 0x3c], esp
sub esp, 0x44
mov dword [ebp - 0x50], esp
sub esp, 0x44
mov dword [ebp - 0x18], esp
push eax
mov dword [ebp - 0x54], esp
push eax
mov dword [ebp - 0x38], esp
sub esp, 0x28
mov dword [ebp - 0xc0], esp
sub esp, 8
mov dword [ebp - 0xc4], esp
sub esp, 8
mov dword [ebp - 0xb0], esp
sub esp, 8
mov dword [ebp - 0x44], esp
sub esp, 0x24
mov dword [ebp - 0xc8], esp
mov dword [ebp - 0x20], 0
mov eax, 0x20219
mov edx, 1
jmp dword [0x43fe40]
xor ebx, ebx
test ecx, ecx
sete bl
xor edx, edx
jmp dword [ebx*4 + 0x43fea8]
jmp dword [edx*4 + 0x43fe48]
mov dword [ebp - 0xa4], 0xeb02d53a
mov dword [ebp - 0xa0], 0xef31e931
mov dword [ebp - 0x9c], 0xe339ed31
mov dword [ebp - 0x98], 0xe736e136
mov dword [ebp - 0x94], 0xfb08e509
mov dword [ebp - 0x90], 0xff3ff929
mov dword [ebp - 0x8c], 0xf324fd3b
mov dword [ebp - 0x88], 0xf722f12d
mov dword [ebp - 0x84], 0x8b18f52d
mov dword [ebp - 0x80], 0x8f59895f
mov dword [ebp - 0x7c], 0x83588d54
mov dword [ebp - 0x78], 0x8747816b
mov dword [ebp - 0x74], 0x9b5f8550
mov dword [ebp - 0x70], 0x9f729976
mov dword [ebp - 0x6c], 0x93609d79
mov dword [ebp - 0x68], 0x976b9118
mov dword [ebp - 0x64], 0xab41957a
mov dword [ebp - 0x60], 0xaf53a95e
mov dword [ebp - 0x5c], 0xa35fad49
mov dword [ebp - 0x58], 0xa1a2
mov dword [ebp - 0x14], 0
mov ecx, dword [ebp - 0x14]
cmp ecx, 0x4f
ja 0x41e8c4
nop
nop
nop
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
movzx edx, byte [ebp + edx - 0xa4]
add ecx, 0x199a3a9d
xor ecx, edx
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x10]
add cl, 0xb5
mov edx, dword [ebp - 0x14]
mov byte [ebp + edx - 0xa4], cl
inc dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
cmp ecx, 0x50
jb 0x41e890
lea ecx, [ebp - 0x48]
lea ebx, [ebp - 0xa4]
push 0
push 0
push eax
push ecx
push ebx
call fcn.00438560
add esp, 0x14
shr eax, 0x1f
jmp dword [eax*4 + 0x43fe50]
jmp dword [0x43fe58]
lea eax, [ebp - 0xb4]
lea ecx, [ebp - 0xcc]
push eax
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebp - 0x48]
call fcn.00438960
add esp, 0x24
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea esi, [ebp - 0xb4]
lea eax, [ebp - 0xcc]
push esi
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebp - 0x48]
call fcn.00438960
add esp, 0x24
jmp dword [0x43fe64]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43fe68]
mov ecx, dword [ebp - 0xb4]
lea eax, [ecx*2 + 2]
inc ecx
jns 0x41e96c
mov eax, 0xffffffff
push eax
call fcn.00409510
add esp, 4
mov edx, eax
mov dword [ebp - 0xa4], 0x3b9639fd
mov dword [ebp - 0xa0], 0x3f883d8f
mov dword [ebp - 0x9c], 0x3ac019d
mov dword [ebp - 0x98], 0x7d405ae
mov dword [ebp - 0x94], 0xbbc09a5
mov dword [ebp - 0x90], 0xf0c0da2
lea eax, [ebp - 0xa0]
mov byte [eax + 0x16], 0
mov word [eax + 0x14], 0
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x14]
cmp eax, 0x1a
ja 0x41ea12
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
movzx ecx, byte [ebp + ecx - 0xa4]
add eax, 0x355ba257
xor eax, ecx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
add al, 0x9f
mov ecx, dword [ebp - 0x14]
mov byte [ebp + ecx - 0xa4], al
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, 0x1b
jb 0x41e9e0
push esi
push edx
push 0
push ebx
push dword [ebp - 0x48]
mov esi, edx
call fcn.00438f30
add esp, 0x14
shr eax, 0x1f
mov dword [ebp - 0x20], esi
jmp dword [eax*4 + 0x43fe70]
mov ecx, esi
mov dword [ebp - 0x20], 0
jmp dword [0x43fe78]
push ecx
call fcn.00409520
add esp, 4
mov dword [ebp - 0x20], 0
lea ebx, [ebp - 0xa0]
jmp dword [0x43fe80]
mov ecx, 4
xor ebx, ebx
cmp ecx, 4
setb bl
mov eax, 0x20119
xor edx, edx
jmp dword [ebx*4 + 0x43fea0]
lea ebx, [ebp - 0xa0]
jmp dword [0x43fe80]
mov ecx, 2
xor ebx, ebx
cmp ecx, 4
setb bl
mov eax, 0x20119
xor edx, edx
jmp dword [ebx*4 + 0x43fea0]
mov ecx, 2
xor ebx, ebx
cmp ecx, 4
setb bl
mov eax, 0x20119
xor edx, edx
jmp dword [ebx*4 + 0x43fea0]
cmp dword [ecx], 0x625b6034
je 0x41eaf0
add ecx, 8
cmp ecx, edx
jne 0x41ead0
jmp case.0x41ea2a.4
mov ecx, dword [ecx + 4]
cmp ecx, esi
je case.0x41ea2a.4
push eax
push 1
push dword [0x444104]
push ecx
call fcn.00435b40
add esp, 0x10
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0xa4], 0xb2b5b4b7
mov byte [ebx + 2], 0
mov word [ebx], 0
mov dword [ebp - 0x14], 0
mov ecx, dword [ebp - 0x14]
cmp ecx, 6
ja 0x41eb74
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
movzx edx, byte [ebp + edx - 0xa4]
add ecx, 0xa61c5319
xor ecx, edx
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x10]
add cl, 0x51
mov edx, dword [ebp - 0x14]
mov byte [ebp + edx - 0xa4], cl
inc dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
cmp ecx, 7
jb 0x41eb40
mov edx, dword [0x444100]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
cmp ecx, edx
je 0x41ebc0
mov esi, dword [ebp - 0xa4]
nop
nop
nop
nop
nop
nop
nop
cmp dword [ecx], 0x625b6034
je 0x41ebb0
add ecx, 8
cmp ecx, edx
jne 0x41eb90
jmp 0x41ebc0
mov ecx, dword [ecx + 4]
cmp ecx, esi
jne 0x41ec0c
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x43fe88]
xor eax, eax
cmp dword [ebp - 0x20], 0
setne al
jmp dword [eax*4 + 0x43fe90]
mov esi, dword [ebp - 0x24]
push esi
call fcn.00437c20
add esp, 4
cmp dword [esi], 1
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x43fe98]
xor ecx, ecx
xor ebx, ebx
cmp ecx, 4
setb bl
mov eax, 0x20119
xor edx, edx
jmp dword [ebx*4 + 0x43fea0]
push eax
push 1
push dword [0x444104]
push ecx
call fcn.00435b40
add esp, 0x10
jmp dword [0x43fe88]
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0xa4], 0xb2b5b4b7
mov byte [ebx + 2], 0
mov word [ebx], 0
mov dword [ebp - 0x14], 0
mov ecx, dword [ebp - 0x14]
cmp ecx, 6
ja 0x41ec94
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
movzx edx, byte [ebp + edx - 0xa4]
add ecx, 0xa61c5319
xor ecx, edx
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x10]
add cl, 0x51
mov edx, dword [ebp - 0x14]
mov byte [ebp + edx - 0xa4], cl
inc dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
cmp ecx, 7
jb 0x41ec60
mov edx, dword [0x444100]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
cmp ecx, edx
je case.0x41ea2a.4
mov esi, dword [ebp - 0xa4]
jmp 0x41ead0
mov eax, dword [case.0x41ea2a.19]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
mov ecx, dword [ebp - 0x20]
test ecx, ecx
sete al
mov ebx, dword [ebp - 0x30]
jmp dword [eax*4 + 0x43fec0]
mov dword [ebx + 8], 0
mov dword [ebx + 4], 0
mov dword [ebx], 0
mov eax, 0xfffffffe
nop
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne 0x41ecf0
cmp eax, 0xffffffd9
jge 0x41ed0e
mov eax, 0xffffffff
jmp 0x41ed11
xor eax, eax
jmp 0x41f9db
add eax, 0x26
push eax
call fcn.00409510
add esp, 4
mov esi, eax
mov dword [edi], 0x4b31553a
mov dword [edi + 4], 0x4fda49db
mov dword [edi + 8], 0x43d34dd4
mov dword [edi + 0xc], 0x472c41db
mov dword [edi + 0x10], 0x7bd54523
mov dword [edi + 0x14], 0x7fe279e8
mov dword [edi + 0x18], 0x73e57de1
mov dword [edi + 0x1c], 0x77fa7120
mov dword [edi + 0x20], 0x6bee7512
mov word [edi + 0x24], 0x696a
mov dword [edi + 0x26], 0
mov byte [edi + 0x2a], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x2a
ja 0x41edb0
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [edi + ecx]
add eax, 0xd5ed11cd
xor eax, ecx
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xa4]
add al, 0x65
mov ecx, dword [ebp - 0x10]
mov byte [edi + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x2b
jb 0x41ed80
mov eax, dword [ebp - 0x20]
movzx ecx, word [eax]
mov eax, esi
test cx, cx
je 0x41ede1
mov eax, dword [ebp - 0x20]
lea edx, [eax + 2]
mov eax, esi
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 0x41edd0
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x41ee13
add edi, 2
mov edx, dword [ebp - 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x41ee00
jmp 0x41ee16
mov edx, dword [ebp - 0x2c]
mov word [eax], 0
xor eax, eax
mov ecx, dword [ebp - 0x20]
cmp word [ecx], 0x39
sete al
jmp dword [eax*4 + 0x43fec8]
mov edi, dword [ebp - 0x1c]
jmp dword [0x43fed0]
push ecx
call fcn.00409520
add esp, 4
push 0x60
push 3
push 0x120089
push dword [ebp - 0x28]
mov dword [ebp - 0x4c], esi
push esi
call fcn.00437e20
add esp, 0x14
mov ecx, dword [case.0x41e8df.36]
nop
nop
jmp ecx
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43fee8]
push 0
push edi
mov eax, dword [ebp - 0x28]
push dword [eax]
call fcn.00438180
add esp, 0xc
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43fef0]
mov esi, dword [edi]
lea eax, [esi + 1]
push eax
call fcn.00409510
add esp, 4
push 0
push esi
mov dword [ebp - 0xac], eax
push eax
mov eax, dword [ebp - 0x28]
push dword [eax]
call fcn.00438260
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43fef8]
mov esi, dword [edi]
mov edi, dword [ebp - 0xac]
mov byte [edi + esi], 0
push 0x20
call fcn.00409510
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 [ebp - 0xa8], eax
mov ecx, eax
push esi
push edi
call fcn.00421280
movzx eax, al
jmp dword [eax*4 + 0x43ff00]
mov edx, dword [ebp - 0x34]
mov dword [edx], 0x87989ebb
mov dword [edx + 4], 0x9280908b
mov dword [edx + 8], 0x979baf47
mov dword [edx + 0xc], 0xa84d9c82
mov dword [edx + 0x10], 0xeee39888
mov dword [edx + 0x14], 0xe0e1c033
mov dword [edx + 0x18], 0xfff8f0f7
mov word [edx + 0x1c], 0x9ff
mov dword [edx + 0x1e], 0
mov word [edx + 0x22], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x23
ja 0x41efa0
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [edx + ecx]
add eax, 0x9e00fdae
xor eax, ecx
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xa4]
add al, 0x3e
mov ecx, dword [ebp - 0x10]
mov byte [edx + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x24
jb 0x41ef70
mov ecx, dword [ebp - 0xa8]
push edx
call fcn.00421490
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43ff08]
jmp dword [0x43ff28]
mov esi, dword [ebp - 0xa8]
mov ecx, esi
call fcn.00421600
push esi
call fcn.00409520
add esp, 4
mov eax, dword [case.0x41e8df.42]
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x43ff40]
push dword [ebp - 0xac]
call fcn.00409520
add esp, 4
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov dword [ebp - 0xa4], 0xb2b5b4b7
mov word [ebp - 0xa0], 0
mov byte [ebp - 0x9e], 0
mov dword [ebp - 0x14], 0
mov ecx, dword [ebp - 0x14]
cmp ecx, 6
ja 0x41f064
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
movzx edx, byte [ebp + edx - 0xa4]
add ecx, 0xa61c5319
xor ecx, edx
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x10]
add cl, 0x51
mov edx, dword [ebp - 0x14]
mov byte [ebp + edx - 0xa4], cl
inc dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
cmp ecx, 7
jb 0x41f030
mov edx, dword [0x444100]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
cmp ecx, edx
je case.0x41e8df.38
mov esi, dword [ebp - 0xa4]
nop
nop
nop
cmp dword [ecx], 0x625b6034
je 0x41f133
add ecx, 8
cmp ecx, edx
jne 0x41f080
jmp case.0x41e8df.38
mov dword [edx], 0xabc5adc8
mov dword [edx + 4], 0xd744a93b
mov dword [edx + 8], 0xd3bbd5be
mov dword [edx + 0xc], 0xdfbad1bb
mov dword [edx + 0x10], 0xdb49ddb3
mov dword [edx + 0x14], 0xc7acd94a
mov dword [edx + 0x18], 0xc3a9c5ad
mov dword [edx + 0x1c], 0xcf54c192
mov dword [edx + 0x20], 0xcba0cda0
mov dword [edx + 0x24], 0xc9c8
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x27
mov edi, dword [ebp - 0x1c]
ja 0x41f120
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [edx + ecx]
add eax, 0xd9ba
xor eax, ecx
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xa4]
add al, 0xea
mov ecx, dword [ebp - 0x10]
mov byte [edx + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x28
jb 0x41f0f0
push 0
push edx
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov ecx, dword [ebp - 0x20]
jmp dword [0x43fed0]
mov ecx, dword [ecx + 4]
cmp ecx, esi
je case.0x41e8df.38
push eax
push 1
push dword [0x444104]
push ecx
call fcn.00435b40
add esp, 0x10
mov eax, dword [case.0x41efb3.19]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [ebp - 0x4c]
jmp dword [0x43ff58]
push eax
call fcn.00409520
add esp, 4
mov esi, dword [ebx]
mov edi, dword [ebx + 4]
xor eax, eax
cmp esi, edi
sete al
jmp dword [eax*4 + 0x43ff60]
xor eax, eax
test esi, esi
jne 0x41f989
jmp 0x41f9db
mov esi, dword [ebx]
mov edi, dword [ebx + 4]
xor eax, eax
cmp esi, edi
sete al
jmp dword [eax*4 + 0x43ff60]
jmp dword [0x43ff6c]
mov eax, dword [0x4440fc]
mov edi, dword [ebp - 0x50]
mov dword [edi], 0xbbf4b9d1
mov dword [edi + 4], 0xbf19bd0b
mov dword [edi + 8], 0x832c811d
mov dword [edi + 0xc], 0x873485c1
mov dword [edi + 0x10], 0x8bcc8936
mov dword [edi + 0x14], 0x8f388d29
mov dword [edi + 0x18], 0x93f7912d
mov dword [edi + 0x1c], 0x97c195ce
mov dword [edi + 0x20], 0x9b3f9922
mov dword [edi + 0x24], 0x9f339d39
mov dword [edi + 0x28], 0xe34ce1c2
mov dword [edi + 0x2c], 0xe741e553
mov dword [edi + 0x30], 0xeb44e945
mov dword [edi + 0x34], 0xef5aed84
mov dword [edi + 0x38], 0xf356f14a
mov word [edi + 0x3c], 0xf5f2
mov dword [edi + 0x3e], 0
mov byte [edi + 0x42], 0
mov dword [ebp - 0x10], 0
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x42
ja 0x41f272
nop
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
movzx edx, byte [edi + edx]
add ecx, 0xc9aa1997
xor ecx, edx
mov dword [ebp - 0xa4], ecx
mov ecx, dword [ebp - 0xa4]
add cl, 0xdf
mov edx, dword [ebp - 0x10]
mov byte [edi + edx], cl
inc dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x43
jb 0x41f240
mov esi, dword [ebp - 0x3c]
push esi
push 0
push 0
push 0x1e
push edi
push 0
call eax
mov esi, dword [esi]
test esi, esi
jns 0x41f28e
mov eax, 0xffffffff
jmp 0x41f291
lea eax, [esi + esi]
push eax
call fcn.00409510
add esp, 4
mov edi, eax
mov eax, dword [0x4440fc]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x18]
mov dword [eax], 0xb5e0d31
mov dword [eax + 4], 0x779097b
mov dword [eax + 8], 0x3760565
mov dword [eax + 0xc], 0x1f6e0141
mov dword [eax + 0x10], 0x1b461d6c
mov dword [eax + 0x14], 0x179a1979
mov dword [eax + 0x18], 0x132f1575
mov dword [eax + 0x1c], 0x2f411174
mov dword [eax + 0x20], 0x2b572da0
mov dword [eax + 0x24], 0x27532949
mov dword [eax + 0x28], 0x23562540
mov dword [eax + 0x2c], 0x3f412153
mov dword [eax + 0x30], 0x3b4e3d5d
mov dword [eax + 0x34], 0x37bc390a
mov dword [eax + 0x38], 0x33483548
mov word [eax + 0x3c], 0x3130
mov byte [eax + 0x42], 0
mov dword [eax + 0x3e], 0
mov dword [ebp - 0x10], 0
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x42
ja 0x41f362
nop
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
movzx edx, byte [eax + edx]
add ecx, 0xffeb6e02
xor ecx, edx
mov dword [ebp - 0xa4], ecx
mov ecx, dword [ebp - 0xa4]
add cl, 0xf2
mov edx, dword [ebp - 0x10]
mov byte [eax + edx], cl
inc dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x43
jb 0x41f330
push dword [ebp - 0x3c]
push esi
push edi
push 0x1e
push eax
push 0
call dword [ebp - 0x20]
push 0x60
push 3
push 0x120089
push dword [ebp - 0x54]
push edi
call fcn.00437e20
add esp, 0x14
jmp case.0x41efb3.25
push dword [ebp - 0x3c]
push esi
mov esi, dword [ebp - 0x20]
push esi
push 0x1e
push edi
push 0
call eax
push 0x60
push 3
push 0x120089
mov edi, dword [ebp - 0x54]
push edi
push esi
call fcn.00437e20
add esp, 0x14
jmp dword [0x43ff70]
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 3
imul eax, eax, 0x421
push eax
call fcn.00409510
add esp, 4
mov dword [ebp - 0x24], eax
mov eax, dword [0x4440fc]
mov edi, dword [ebp - 0x50]
mov dword [edi], 0xbbf4b9d1
mov dword [edi + 4], 0xbf19bd0b
mov dword [edi + 8], 0x832c811d
mov dword [edi + 0xc], 0x873485c1
mov dword [edi + 0x10], 0x8bcc8936
mov dword [edi + 0x14], 0x8f388d29
mov dword [edi + 0x18], 0x93f7912d
mov dword [edi + 0x1c], 0x97c195ce
mov dword [edi + 0x20], 0x9b3f9922
mov dword [edi + 0x24], 0x9f339d39
mov dword [edi + 0x28], 0xe34ce1c2
mov dword [edi + 0x2c], 0xe741e553
mov dword [edi + 0x30], 0xeb44e945
mov dword [edi + 0x34], 0xef5aed84
mov dword [edi + 0x38], 0xf356f14a
mov word [edi + 0x3c], 0xf5f2
mov byte [edi + 0x42], 0
mov dword [edi + 0x3e], 0
mov dword [ebp - 0x10], 0
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x42
ja 0x41f4a2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
movzx edx, byte [edi + edx]
add ecx, 0xc9aa1997
xor ecx, edx
mov dword [ebp - 0xa4], ecx
mov ecx, dword [ebp - 0xa4]
add cl, 0xdf
mov edx, dword [ebp - 0x10]
mov byte [edi + edx], cl
inc dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x43
jb 0x41f470
mov esi, dword [ebp - 0x3c]
push esi
push 0
push 0
push 0x1e
push edi
push 0
call eax
mov esi, dword [esi]
test esi, esi
jns 0x41f4c0
mov eax, 0xffffffff
jmp 0x41f4c3
lea eax, [esi + esi]
mov ecx, dword [ebp - 0x18]
lea edi, [ecx + 0x3e]
push eax
call fcn.00409510
add esp, 4
mov dword [ebp - 0x20], eax
mov eax, dword [0x4440fc]
mov ecx, dword [ebp - 0x18]
mov dword [ecx], 0xb5e0d31
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 4], 0x779097b
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 8], 0x3760565
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0xc], 0x1f6e0141
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x10], 0x1b461d6c
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x14], 0x179a1979
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x18], 0x132f1575
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x1c], 0x2f411174
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x20], 0x2b572da0
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x24], 0x27532949
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x28], 0x23562540
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x2c], 0x3f412153
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x30], 0x3b4e3d5d
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x34], 0x37bc390a
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x38], 0x33483548
mov ecx, dword [ebp - 0x18]
mov word [ecx + 0x3c], 0x3130
mov byte [edi + 4], 0
mov dword [edi], 0
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x10], 0
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x42
ja 0x41f390
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x10]
movzx edx, byte [edi + edx]
add ecx, 0xffeb6e02
xor ecx, edx
mov dword [ebp - 0xa4], ecx
mov ecx, dword [ebp - 0xa4]
add cl, 0xf2
mov edx, dword [ebp - 0x10]
mov byte [edi + edx], cl
inc dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
cmp ecx, 0x43
jb 0x41f5a0
jmp 0x41f390
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x43ff78]
mov dword [ebp - 0x28], 0
mov eax, dword [0x44007c]
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x1c], edi
jmp 0x41f880
push 0
mov esi, dword [ebp - 0x38]
push esi
push dword [edi]
call fcn.00438180
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [ebp - 0x28], 0
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x1c], ecx
jmp dword [eax*4 + 0x43ff80]
mov esi, dword [esi]
lea eax, [esi + 1]
push eax
call fcn.00409510
add esp, 4
push 0
push esi
mov dword [ebp - 0x4c], eax
push eax
push dword [edi]
call fcn.00438260
add esp, 0x10
not eax
shr eax, 0x1f
mov dword [ebp - 0x28], 0
mov ecx, dword [ebp - 0x24]
jmp dword [eax*4 + 0x43ff88]
mov eax, dword [ebp - 0x38]
mov esi, dword [eax]
mov edi, dword [ebp - 0x4c]
mov byte [edi + esi], 0
push 0x20
call fcn.00409510
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 [ebp - 0x40], eax
mov ecx, eax
push esi
push edi
call fcn.00421280
movzx eax, al
mov dword [ebp - 0x28], 0
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x1c], ecx
jmp dword [eax*4 + 0x43ff90]
mov edx, dword [ebp - 0xc0]
mov dword [edx], 0x37203e13
mov dword [edx + 4], 0x3a282833
mov dword [edx + 8], 0x27330f67
mov dword [edx + 0xc], 0x6d3c2a
mov dword [edx + 0x10], 0x2e3b3020
mov dword [edx + 0x14], 0x1515166b
mov dword [edx + 0x18], 0x1f0d0816
mov dword [edx + 0x1c], 0x701002f
mov word [edx + 0x20], 0x6d01
mov dword [edx + 0x22], 0
mov byte [edx + 0x26], 0
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x26
ja 0x41f750
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x10]
movzx ecx, byte [edx + ecx]
add eax, 0x8bed374a
xor eax, ecx
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xa4]
add al, 0xfa
mov ecx, dword [ebp - 0x10]
mov byte [edx + ecx], al
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, 0x27
jb 0x41f720
mov ecx, dword [ebp - 0x40]
push edx
call fcn.00421490
xor ecx, ecx
test eax, eax
setne cl
mov dword [ebp - 0x28], 0
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x1c], edx
jmp dword [ecx*4 + 0x43ff98]
jmp dword [0x440050]
mov dword [ebp - 0x1c], ecx
jmp dword [0x440068]
mov eax, dword [edi]
mov dword [ebp - 0xa4], 0xb2b5b4b7
mov word [ebp - 0xa0], 0
mov byte [ebp - 0x9e], 0
mov dword [ebp - 0x14], 0
mov ecx, dword [ebp - 0x14]
cmp ecx, 6
ja 0x41f824
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
movzx edx, byte [ebp + edx - 0xa4]
add ecx, 0xa61c5319
xor ecx, edx
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x10]
add cl, 0x51
mov edx, dword [ebp - 0x14]
mov byte [ebp + edx - 0xa4], cl
inc dword [ebp - 0x14]
mov ecx, dword [ebp - 0x14]
cmp ecx, 7
jb 0x41f7f0
mov edx, dword [0x444100]
mov ecx, dword [edx]
mov edx, dword [edx + 4]
cmp ecx, edx
mov edi, dword [ebp - 0x24]
je 0x41f86a
mov esi, dword [ebp - 0xa4]
nop
nop
nop
nop
cmp dword [ecx], 0x625b6034
je 0x41f851
add ecx, 8
cmp ecx, edx
jne 0x41f840
jmp 0x41f86a
mov ecx, dword [ecx + 4]
cmp ecx, esi
je 0x41f86a
push eax
push 1
push dword [0x444104]
push ecx
call fcn.00435b40
add esp, 0x10
mov eax, dword [0x44007c]
mov esi, dword [ebp - 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
cmp esi, edi
je 0x41f9db
mov dword [ebp - 0x28], eax
mov ebx, esi
jmp 0x41f9a7
add ebx, 8
cmp ebx, edi
je 0x41f9b8
mov eax, dword [ebx]
test eax, eax
je 0x41f9a0
push eax
call fcn.00409520
add esp, 4
jmp 0x41f9a0
push esi
call fcn.00409520
add esp, 4
mov eax, dword [ebp - 0x30]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov eax, dword [ebp - 0x28]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [eax + 8]
mov eax, dword [case.0x41efb3.5]
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x43ff20]
not eax
mov ebx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x24]
mov dword [ecx + edi + 4], eax
mov eax, dword [ebp - 0x2c]
add eax, 8
mov dword [ebx + 4], eax
mov edx, dword [edx + 4]
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x43ff20]
mov dword [ebp - 0x40], edx
mov eax, dword [edx]
mov dword [ebp - 0x20], eax
mov esi, dword [ebx]
mov edx, dword [ebx + 4]
mov edi, edx
sub edi, esi
cmp edx, dword [ebx + 8]
mov dword [ebp - 0x34], edi
jne 0x41fac4
mov dword [ebp - 0x2c], edx
mov ecx, edi
sar ecx, 3
lea eax, [ecx + 1]
mov edi, ecx
shr edi, 1
add edi, ecx
cmp edi, eax
ja 0x41fa5a
mov edi, eax
lea eax, [edi*8]
push eax
call fcn.00409510
add esp, 4
mov dword [ebp - 0x24], eax
test esi, esi
je 0x41faae
mov edx, dword [ebp - 0x2c]
cmp esi, edx
mov ebx, dword [ebp - 0x24]
je 0x41faa2
xor eax, eax
nop
nop
nop
mov ecx, dword [esi + eax]
mov dword [ebx + eax], ecx
mov ecx, dword [esi + eax + 4]
mov dword [ebx + eax + 4], ecx
mov dword [esi + eax], 0
lea ecx, [esi + eax]
add ecx, 8
add eax, 8
cmp ecx, edx
jne 0x41fa80
push esi
call fcn.00409520
add esp, 4
mov ebx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x24]
mov dword [ebx], esi
mov ecx, dword [ebp - 0x34]
lea edx, [esi + ecx]
mov dword [ebx + 4], edx
lea eax, [esi + edi*8]
mov edi, ecx
mov dword [ebx + 8], eax
mov dword [ebp - 0x2c], edx
mov dword [esi + edi], 0
mov dword [ebp - 0x24], esi
mov dword [esi + edi + 4], 0
mov ebx, 0xffffffff
xor eax, eax
mov ecx, dword [ebp - 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
cmp byte [ecx + ebx + 1], 0
lea ebx, [ebx + 1]
lea eax, [eax + 1]
jne 0x41faf0
lea eax, [ebx + 1]
mov dword [ebp - 0x1c], eax
push eax
call fcn.00409510
add esp, 4
mov ecx, eax
mov eax, dword [ebp - 0x24]
mov dword [eax + edi], ecx
mov eax, ecx
mov ecx, dword [ebp - 0x1c]
shr ecx, 2
mov edx, dword [ebp - 0x20]
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edi, dword [ebp - 0x1c]
mov ecx, edi
xor ecx, 3
mov edx, edi
or edx, 0xfffffffc
and edx, ecx
add eax, edx
add edx, dword [ebp - 0x20]
mov ecx, edi
shr ecx, 1
and ecx, 1
mov dword [ebp - 0xbc], edx
mov dword [ebp - 0xb8], eax
mov edi, eax
mov eax, dword [ebp - 0xbc]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test bl, 1
jne 0x41fb79
mov ecx, dword [ebp - 0x1c]
and ecx, 2
movzx eax, byte [edx + ecx]
mov edx, dword [ebp - 0xb8]
mov byte [edx + ecx], al
test ebx, ebx
je 0x41fbf5
cmp ebx, 1
mov edi, dword [ebp - 0x34]
jne 0x41fb88
mov eax, 0xffffffff
jmp 0x41fbce
and esi, 0xfffffffe
mov eax, 0xffffffff
mov edx, dword [ebp - 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
shr ecx, 8
xor al, byte [edx]
movzx eax, al
xor ecx, dword [eax*4 + 0x43b5c0]
mov eax, ecx
shr eax, 8
xor cl, byte [edx + 1]
add edx, 2
movzx ecx, cl
xor eax, dword [ecx*4 + 0x43b5c0]
add esi, 0xfffffffe
jne 0x41fba0
mov dword [ebp - 0x20], edx
test bl, 1
mov edx, dword [ebp - 0x40]
je 0x41fa00
mov ecx, eax
shr ecx, 8
mov esi, dword [ebp - 0x20]
xor al, byte [esi]
movzx eax, al
xor ecx, dword [eax*4 + 0x43b5c0]
mov eax, ecx
jmp 0x41fa00
xor eax, eax
mov ebx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x34]
jmp 0x41fa05
add eax, 8
mov dword [ebp - 0x28], 0
mov esi, dword [eax]
xor eax, eax
test esi, esi
setne al
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x1c], ecx
jmp dword [eax*4 + 0x43ffa0]
add esi, 4
mov esi, dword [esi]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x43ffa0]
jmp dword [0x43ffb0]
mov edx, dword [esi]
xor edi, edi
cmp dword [esi + 0x18], 3
jne 0x41fc53
mov edi, dword [esi + 0x10]
test edx, edx
setne cl
test edi, edi
setne al
and al, cl
mov ecx, dword [case.0x41f76d.10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
movzx eax, al
jmp dword [eax*4 + 0x43ffc8]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x34], esi
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.default.0x41fcb9
sub ecx, edi
inc ecx
shr ecx, 1
mov dword [ebp - 0x2c], ecx
lea eax, [ecx + 1]
push eax
call fcn.00409510
add esp, 4
movsx ecx, byte [edi]
xor edx, edx
test ecx, ecx
setne dl
mov dword [ebp - 0x38], eax
jmp dword [edx*4 + 0x43ffd0]
mov byte [eax], cl
inc eax
movsx ecx, byte [esi]
xor ebx, ebx
test ecx, ecx
setne bl
mov edi, esi
jmp dword [ebx*4 + 0x43ffd0]
lea esi, [edi + 1]
mov ebx, ecx
or ebx, 0x20
add ebx, 0xffffff9f
cmp ebx, 5
ja case.default.0x41fcfd
mov ebx, ecx
and ebx, 0xffffff9e
or ecx, 0xfffffffe
add ecx, ebx
add ecx, 0xb
movsx ebx, byte [esi]
xor edx, edx
test ebx, ebx
setne dl
jmp dword [edx*4 + 0x43ffd8]
add ecx, 0xffffffd0
cmp ecx, 0xa
jb case.default.0x41fd27
mov ecx, 0xffffffff
movsx ebx, byte [esi]
xor edx, edx
test ebx, ebx
setne dl
jmp dword [edx*4 + 0x43ffd8]
shl ecx, 4
add edi, 2
mov edx, ebx
or edx, 0x20
add edx, 0xffffff9f
cmp edx, 5
ja case.default.0x41fd5d
mov edx, ebx
and edx, 0xffffff9e
or ebx, 0xfffffffe
add edx, ebx
add edx, 0xb
or edx, ecx
mov byte [eax], dl
inc eax
movsx ecx, byte [edi]
xor edx, edx
test ecx, ecx
setne dl
jmp dword [edx*4 + 0x43ffd0]
add ebx, 0xffffffd0
cmp ebx, 0xa
jb case.default.0x41fd8c
mov ebx, 0xffffffff
or ebx, ecx
mov byte [eax], bl
inc eax
movsx ecx, byte [edi]
xor edx, edx
test ecx, ecx
setne dl
jmp dword [edx*4 + 0x43ffd0]
mov byte [eax], 0
push 0
push 0x10
push 0
push dword [ebp - 0x18]
call fcn.004216a0
add esp, 0x10
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
xor esi, esi
xor ebx, ebx
mov dword [ebp - 0x50], eax
cmp ecx, eax
setne bl
mov eax, dword [case.0x41fd8c.54]
jmp dword [ebx*4 + 0x43ffe0]
mov ebx, dword [ecx + 4]
mov edi, ebx
shr edi, 0x1c
shl ebx, 4
or ebx, 1
xor edi, dword [ebp - 0x3c]
xor ebx, dword [ebp - 0x18]
xor edx, edx
or ebx, edi
sete dl
mov ebx, 1
jmp dword [edx*4 + 0x43ffe8]
mov esi, dword [ecx]
nop
nop
nop
nop
nop
nop
nop
xor ebx, ebx
jmp eax
jmp dword [ebx*4 + 0x440000]
add ecx, 8
xor ebx, ebx
cmp ecx, dword [ebp - 0x50]
setne bl
jmp dword [ebx*4 + 0x43ffe0]
mov eax, dword [case.0x41f76d.31]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test esi, esi
setne al
mov ebx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x38]
jmp dword [eax*4 + 0x440018]
mov edi, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xb0]
jmp dword [0x440024]
mov eax, dword [case.0x41f76d.32]
mov edx, dword [ebp - 0x38]
jmp eax
mov esi, dword [ebp - 0x34]
jmp dword [0x440048]
mov eax, dword [ebp - 0x2c]
mov dword [edi], eax
mov dword [edi + 4], edx
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + eax + 1], 0
lea eax, [eax + 1]
jne 0x41fec0
mov dword [ecx], eax
mov dword [ecx + 4], esi
jmp dword [0x44002c]
mov eax, dword [ebp - 0x2c]
mov dword [edi], eax
mov dword [edi + 4], edx
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + eax + 1], 0
lea eax, [eax + 1]
jne 0x41fef0
mov dword [ecx], eax
mov dword [ecx + 4], esi
jmp case.0x41f76d.35
mov eax, dword [ebp - 0x44]
mov dword [eax], 0
mov dword [eax + 4], 0
push 0x6c625980
push dword [0x444108]
call fcn.00437480
add esp, 8
push dword [ebp - 0x44]
push 1
push 0
push 0
push dword [ebp - 0xb0]
push 0
push edi
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x440030]