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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x460
mov esi, esp
push eax
sub esp, 0x20
mov dword [esi + 0x1c], esp
mov dword [esi + 0x44], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x38], 0
mov dword [esi + 0x5c], 0x910a9f09
mov dword [esi + 0x60], 0x95319337
mov dword [esi + 0x64], 0x89c8970b
mov dword [esi + 0x68], 0x8d028b2f
mov dword [esi + 0x6c], 0x818e8f2b
mov eax, 0xa5
nop
nop
nop
nop
movzx edx, byte [esi + eax - 0x49]
lea ecx, [eax - 0x373b800]
mov edi, eax
and edi, edx
or ecx, edx
xor ecx, edi
mov edx, ecx
and edx, 0x46
xor ecx, 0xc6
lea ecx, [ecx + edx*2]
inc cl
mov byte [esi + eax - 0x49], cl
inc eax
cmp eax, 0xb9
jne case.default.0x42a570
lea eax, [esi + 0x5c]
lea ecx, [esi + 0x38]
push eax
call fcn.0043d4b0
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x44ba08]
lea ecx, [esi + 0x38]
push 0x410
call fcn.0043d6b0
not eax
shr eax, 0x1f
xor ebx, ebx
jmp dword [eax*4 + 0x44ba10]
mov dword [esi + 0x5c], 0x6a055c6b
mov dword [esi + 0x60], 0x54560b6c
mov dword [esi + 0x64], 0x605f6507
mov dword [esi + 0x68], 0xd5a5e03
mov dword [esi + 0x6c], 0x2c7d7a0a
mov dword [esi + 0x70], 0x15787e7b
mov dword [esi + 0x74], 0x1213761e
mov dword [esi + 0x78], 0xe791009
mov dword [esi + 0x7c], 0x6e141e16
mov dword [esi + 0x80], 0x66d731f
mov dword [esi + 0x84], 0xa97e6767
mov word [esi + 0x88], 0
mov byte [esi + 0x8a], 0
mov edx, 0x49828cb1
mov edi, 0xb67d734e
nop
movzx ebx, byte [esi + edx - 0x49828c55]
mov dword [esi + 4], ebx
xor ebx, edx
or ebx, edi
mov eax, ebx
or al, 2
inc al
mov ecx, ebx
shr cl, 1
and cl, 1
mul cl
mov ecx, eax
add cl, al
add cl, byte [esi + 4]
test bl, 2
sete al
not bl
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0x8b
mov byte [esi + edx - 0x49828c55], al
inc edx
dec edi
cmp edx, 0x49828ce0
jne 0x42a600
lea eax, [esi + 0x50]
lea ecx, [esi + 0x38]
push 0
push 0x2b
lea edx, [esi + 0x5c]
push edx
push eax
call fcn.0043e150
mov ebx, dword [esi + 0x50]
mov edi, dword [esi + 0x54]
xor eax, eax
cmp ebx, edi
sete al
jmp dword [eax*4 + 0x44ba18]
mov eax, edi
sub eax, ebx
sar eax, 3
mov ecx, eax
and ecx, 0xfffffbde
mov edx, eax
and edx, 0x421
or eax, 0x421
imul eax, edx
xor edx, 0x421
imul edx, ecx
add eax, edx
push eax
call fcn.0040c4e0
add esp, 4
mov dword [esi + 0x18], 0
xor ecx, ecx
mov dword [esi + 0x4c], edi
cmp ebx, edi
setne cl
mov dword [esi + 0x34], eax
mov edi, eax
jmp dword [ecx*4 + 0x44ba20]
mov ebx, dword [esi + 0x18]
mov eax, ebx
and al, 1
movzx eax, al
mov ecx, dword [esi + 0x1c]
jmp dword [eax*4 + 0x44ba28]
jmp dword [0x44ba88]
add ebx, 8
xor eax, eax
cmp ebx, dword [esi + 0x4c]
setne al
jmp dword [eax*4 + 0x44ba20]
mov dword [esi + 8], edi
mov edi, dword [ebx]
mov dword [esi + 0x20], ebx
mov ebx, dword [ebx + 4]
push 0x400
push 0
lea eax, [esi + 0x5c]
push eax
call fcn.0040c560
add esp, 0xc
lea eax, [esi + 0x28]
lea ecx, [esi + 0x38]
push eax
push 0
push 0x400
lea eax, [esi + 0x5c]
push eax
push ebx
push edi
call fcn.0043dfe0
cmp eax, 0xc0000000
setae al
mov ecx, dword [esi + 0x28]
or ecx, dword [esi + 0x2c]
sete cl
or cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44ba30]
mov eax, 1
mov ebx, dword [esi + 0x20]
mov edi, dword [esi + 8]
jmp dword [eax*4 + 0x44ba38]
xor eax, eax
mov ebx, dword [esi + 0x20]
mov edi, dword [esi + 8]
jmp dword [eax*4 + 0x44ba38]
mov dword [esi + 8], edi
mov byte [esi + 0x45b], 0
movzx eax, byte [esi + 0x5c]
xor edi, edi
test al, al
je 0x42a7a1
lea ecx, [esi + 0x5c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp al, 0x2e
je 0x42a79f
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x42a790
jmp 0x42a7a1
mov edi, ecx
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x44ba40]
mov ecx, edi
movzx eax, byte [edi + 1]
inc ecx
xor edx, edx
test al, al
mov dword [esi + 0x14], ecx
je 0x42a7d1
nop
cmp al, 0x2e
je 0x42a7cf
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x42a7c0
jmp 0x42a7d1
mov edx, ecx
xor eax, eax
test edx, edx
setne al
mov edi, dword [esi + 0x14]
jmp dword [eax*4 + 0x44ba48]
mov ecx, edx
sub ecx, edi
mov edi, ecx
and edi, 3
mov eax, ecx
or eax, 3
imul eax, edi
xor edi, 3
mov dword [esi + 0x10], ecx
and ecx, 0xfffffffc
imul ecx, edi
mov edi, eax
add edi, ecx
shr edi, 2
mov dword [esi + 4], edx
movzx eax, byte [edx - 1]
cmp eax, 0x3d
je 0x42a817
cmp eax, 0x2e
jne 0x42a818
dec edi
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x10]
movzx eax, byte [eax + ecx - 2]
cmp eax, 0x3d
mov dword [esi + 0x20], ebx
je 0x42a830
cmp eax, 0x2e
jne 0x42a831
dec edi
mov dword [esi + 0x48], edi
lea eax, [edi + 1]
push eax
call fcn.0040c4e0
add esp, 4
mov dword [esi + 0x24], eax
mov eax, dword [esi + 4]
cmp eax, dword [esi + 0x14]
je 0x42a934
mov dword [esi + 4], 0
mov edi, 2
jmp 0x42a873
mov ecx, dword [esi + 0x10]
lea eax, [edi + 4]
add edi, 2
cmp edi, ecx
mov edi, eax
jae 0x42a934
mov ebx, dword [esi + 0x14]
movzx eax, byte [ebx + edi - 2]
push eax
call fcn.00421b00
add esp, 4
mov byte [esi + 0xf], al
movzx eax, byte [ebx + edi - 1]
push eax
call fcn.00421b00
add esp, 4
mov bh, al
movzx ecx, byte [esi + 0xf]
shl cl, 2
shr al, 4
and al, 3
or al, cl
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 4]
mov byte [ecx + edx], al
inc edx
mov dword [esi + 4], edx
mov ecx, dword [esi + 0x10]
cmp edi, ecx
jae 0x42a863
mov eax, dword [esi + 0x14]
movzx eax, byte [eax + edi]
push eax
call fcn.00421b00
add esp, 4
cmp al, 0x40
je 0x42a860
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 4]
mov byte [ecx + edx], al
mov eax, edx
and eax, 1
mov ecx, edx
xor ecx, 1
lea edx, [ecx + eax*2]
lea eax, [edi + 1]
mov ecx, dword [esi + 0x10]
cmp eax, ecx
jae 0x42a92c
mov dword [esi + 4], edx
mov eax, dword [esi + 0x14]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.00421b00
add esp, 4
cmp al, 0x40
je 0x42a860
shl bl, 6
add al, bl
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 4]
mov byte [ecx + edx], al
inc edx
mov dword [esi + 4], edx
jmp 0x42a860
mov dword [esi + 4], edx
jmp 0x42a863
mov eax, dword [esi + 0x48]
mov ebx, dword [esi + 0x24]
mov byte [ebx + eax], 0
push ebx
call fcn.00403bb0
add esp, 4
mov edi, eax
jmp dword [0x44ba50]
push ebx
call fcn.0040c4f0
add esp, 4
push edi
call fcn.00404500
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esi + 0x20]
jmp dword [ecx*4 + 0x44ba58]
jmp 0x42aa57
mov dword [esi + 0x28], 0xf9146061
mov byte [esi + 0x2c], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x2b
xor dl, byte [esi + ecx + 0x28]
add dl, 0x29
mov byte [esi + ecx + 0x28], dl
inc ecx
cmp ecx, 5
jne case.default.0x42a9ba
lea ecx, [esi + 0x28]
push ecx
push eax
call fcn.00404450
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44ba60]
mov edx, dword [esi + 8]
jmp 0x42aa2c
mov dword [esi + 4], edi
jmp dword [0x44ba6c]
movzx ecx, byte [eax]
mov edx, dword [esi + 8]
test cl, cl
je 0x42a9eb
lea edi, [eax + 1]
mov edx, dword [esi + 8]
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x42a9e0
mov byte [edx], 0
jmp case.0x42a9ba.2
mov byte [ecx], 0
jmp dword [0x44ba70]
movzx edx, byte [eax]
mov ecx, dword [esi + 8]
test dl, dl
je 0x42a9f0
lea edi, [eax + 1]
mov ecx, dword [esi + 8]
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], dl
inc ecx
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0x42aa10
jmp 0x42a9f0
mov byte [ecx], 0x3a
mov byte [ecx + 1], 0x20
add ecx, 2
mov edx, ecx
mov edi, dword [esi + 4]
movzx eax, byte [esi + 0x5c]
test al, al
je 0x42aa4b
lea ecx, [esi + 0x5d]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x42aa40
mov byte [edx], 0xa
inc edx
mov dword [esi + 8], edx
mov al, 1
mov dword [esi + 0x18], eax
push edi
call fcn.00404770
add esp, 4
mov eax, dword [case.0x42a570.11]
mov edi, dword [esi + 8]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov dword [esi + 0x18], 0
test ebx, ebx
jne 0x42ab50
jmp 0x42ab5d
mov byte [edi], 0
mov ebx, edi
not ebx
mov edx, dword [esi + 0x34]
mov eax, edx
not eax
and eax, edi
mov dword [ecx], 0xfdfeff0f
mov dword [ecx + 4], 0xe1f1f6fb
mov dword [ecx + 8], 0xecf8e6ff
mov dword [ecx + 0xc], 0xfaee0e29
mov dword [ecx + 0x10], 0xf52ff0ff
mov dword [ecx + 0x14], 0xb050e11
mov dword [ecx + 0x18], 0x1112c911
mov word [ecx + 0x1c], 0xab1c
mov dword [ecx + 0x1e], 0
mov byte [ecx + 0x22], 0
and ebx, edx
mov dword [esi + 4], ebx
mov edx, 0x6e
mov edi, 0x92
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x1c]
movzx ecx, byte [ecx + edx - 0x6e]
mov ebx, ecx
not ebx
or ebx, edi
add ebx, edx
and ecx, edi
or ecx, ebx
add cl, 0xdf
mov ebx, dword [esi + 0x1c]
mov byte [ebx + edx - 0x6e], cl
mov ecx, dword [esi + 0x1c]
inc edx
dec edi
cmp edx, 0x91
jne 0x42aaf0
sub eax, dword [esi + 4]
mov edx, ecx
mov ecx, dword [ebp + 8]
push eax
push dword [esi + 0x34]
push edx
call fcn.0040cf40
mov ebx, eax
jmp dword [0x44ba88]
push dword [esi + 0x34]
call fcn.0040c4f0
add esp, 4
and bl, 1
mov dword [esi + 0x18], ebx
mov ebx, dword [esi + 0x50]
mov edi, dword [esi + 0x54]
test ebx, ebx
je 0x42ab5d
cmp ebx, edi
je 0x42ab5d
push ebx
call fcn.0040c4f0
add esp, 4
mov ebx, dword [esi + 0x18]
lea ecx, [esi + 0x38]
call fcn.0043d7e0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
sub esp, 0x14
mov eax, esp
sub esp, 0x54
mov ecx, esp
mov dword [eax], 0x13a41149
mov dword [eax + 4], 0x6fe26ddf
mov dword [eax + 8], 0x6bde69c9
mov dword [eax + 0xc], 0x673665d0
mov dword [eax + 0x10], 0x63ee61c1
mov dword [eax + 0x14], 0x7f7e7dc4
mov edx, 0x3c
mov esi, 3
nop
nop
nop
mov edi, esi
and edi, 0x22
mov ebx, edx
and ebx, 0x5d
or ebx, edi
xor bl, byte [eax + edx - 0x3c]
xor bl, 0xa2
add bl, 0x54
mov byte [eax + edx - 0x3c], bl
inc edx
dec esi
cmp edx, 0x54
jne 0x42abd0
mov dword [ecx], 0x912c9f30
mov dword [ecx + 4], 0x952b93d7
mov dword [ecx + 8], 0x8923972f
mov dword [ecx + 0xc], 0x8d388b3c
mov dword [ecx + 0x10], 0x81228f27
mov dword [ecx + 0x14], 0x85c1833f
mov dword [ecx + 0x18], 0xf93e87c1
mov dword [ecx + 0x1c], 0xfd44fb43
mov dword [ecx + 0x20], 0xf152ffbb
mov dword [ecx + 0x24], 0xf543f345
mov dword [ecx + 0x28], 0xe942f7b2
mov dword [ecx + 0x2c], 0xeda9eb41
mov dword [ecx + 0x30], 0xe1a9ef5e
mov dword [ecx + 0x34], 0xe554e34c
mov dword [ecx + 0x38], 0xd97ae747
mov dword [ecx + 0x3c], 0xdd7ddb4e
mov dword [ecx + 0x40], 0xd16bdf70
mov dword [ecx + 0x44], 0xd575d344
mov dword [ecx + 0x48], 0xc949d777
mov word [ecx + 0x4c], 0xcbc8
mov byte [ecx + 0x50], 0
mov word [ecx + 0x4e], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, edx
add bl, 0xa5
xor bl, byte [ecx + edx]
add bl, 0xc7
mov byte [ecx + edx], bl
inc edx
cmp edx, 0x51
jne 0x42ac90
push eax
push ecx
call fcn.0043a740
add esp, 8
nop
nop
push eax
sub esp, 0x14
mov eax, esp
sub esp, 0x54
mov ecx, esp
sub esp, 0xc
mov dword [ebp - 0x20], esp
sub esp, 0x28
mov dword [ebp - 0x10], esp
sub esp, 0x30
mov dword [ebp - 0x2c], esp
push eax
mov dword [ebp - 0x30], esp
push eax
mov dword [ebp - 0x14], esp
sub esp, 0x24
mov dword [ebp - 0x28], esp
push eax
mov dword [ebp - 0x3c], esp
sub esp, 0x44
mov dword [ebp - 0x1c], esp
sub esp, 0x44
mov dword [ebp - 0x18], esp
push eax
mov dword [ebp - 0x60], esp
push eax
mov dword [ebp - 0x38], esp
sub esp, 0x28
mov dword [ebp - 0x48], esp
sub esp, 8
mov dword [ebp - 0x58], esp
sub esp, 8
mov dword [ebp - 0x6c], esp
sub esp, 8
mov dword [ebp - 0x4c], esp
sub esp, 0x24
mov dword [ebp - 0x5c], esp
mov dword [eax], 0x13a41149
mov dword [eax + 4], 0x6fe26ddf
mov dword [eax + 8], 0x6bde69c9
mov dword [eax + 0xc], 0x673665d0
mov dword [eax + 0x10], 0x63ee61c1
mov dword [eax + 0x14], 0x7f7e7dc4
mov ebx, 0x3c
mov esi, 3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, esi
and edi, 0x22
mov edx, ebx
and edx, 0x5d
or edx, edi
xor dl, byte [eax + ebx - 0x3c]
xor dl, 0xa2
add dl, 0x54
mov byte [eax + ebx - 0x3c], dl
inc ebx
dec esi
cmp ebx, 0x54
jne 0x42ad50
mov dword [ecx], 0x912c9f30
mov dword [ecx + 4], 0x952b93d7
mov dword [ecx + 8], 0x8923972f
mov dword [ecx + 0xc], 0x8d388b3c
mov dword [ecx + 0x10], 0x81228f27
mov dword [ecx + 0x14], 0x85c1833f
mov dword [ecx + 0x18], 0xf93e87c1
mov dword [ecx + 0x1c], 0xfd44fb43
mov dword [ecx + 0x20], 0xf152ffbb
mov dword [ecx + 0x24], 0xf543f345
mov dword [ecx + 0x28], 0xe942f7b2
mov dword [ecx + 0x2c], 0xeda9eb41
mov dword [ecx + 0x30], 0xe1a9ef5e
mov dword [ecx + 0x34], 0xe554e34c
mov dword [ecx + 0x38], 0xd97ae747
mov dword [ecx + 0x3c], 0xdd7ddb4e
mov dword [ecx + 0x40], 0xd16bdf70
mov dword [ecx + 0x44], 0xd575d344
mov dword [ecx + 0x48], 0xc949d777
mov word [ecx + 0x4c], 0xcbc8
mov byte [ecx + 0x50], 0
mov word [ecx + 0x4e], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, edx
add bl, 0xa5
xor bl, byte [ecx + edx]
add bl, 0xc7
mov byte [ecx + edx], bl
inc edx
cmp edx, 0x51
jne 0x42ae10
push eax
push ecx
call fcn.0043a740
add esp, 8
jmp dword [0x44ba9c]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44baa0]
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 8], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov ecx, 0xfffffffe
nop
nop
cmp word [eax + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x42ae60
cmp ecx, 0xffffffd9
mov ebx, dword [ebp - 0x10]
jge 0x42ae84
mov dword [ebp - 0x24], eax
mov ecx, 0xffffffff
jmp 0x42ae8a
xor eax, eax
jmp 0x42b65b
mov dword [ebp - 0x24], eax
add ecx, 0x26
push ecx
call fcn.0040c4e0
add esp, 4
mov esi, eax
mov dword [ebx], 0xe94feb58
mov dword [ebx + 4], 0xed7cef79
mov dword [ebx + 8], 0xd17dd346
mov dword [ebx + 0xc], 0xd56ad779
mov dword [ebx + 0x10], 0xd94bdb71
mov dword [ebx + 0x14], 0xdd74df4a
mov dword [ebx + 0x18], 0xc16bc373
mov dword [ebx + 0x1c], 0xc55cc792
mov dword [ebx + 0x20], 0xc960cb60
mov dword [ebx + 0x24], 0xcfc8
mov eax, 0x34273057
nop
movzx ecx, byte [ebx + eax - 0x34273057]
xor ecx, eax
mov edi, ecx
and edi, 0x240220dc
mov ebx, ecx
xor ebx, 0xec5ae2dc
lea edx, [ebx + edi*2]
lea edi, [ebx + edi*2]
add edi, 0xee12b70
mov ebx, edi
xor ebx, 0xfe
or edi, 1
and edi, ebx
mov ebx, dword [ebp - 0x10]
and ecx, 1
sub edx, ecx
add edx, edi
add dl, 0x71
mov byte [ebx + eax - 0x34273057], dl
inc eax
cmp eax, 0x3427307f
jne 0x42aee0
mov eax, dword [ebp - 0x24]
movzx edx, word [eax]
mov ecx, esi
test dx, dx
je 0x42af61
mov edi, eax
add edi, 2
mov ecx, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x42af50
mov word [ecx], 0
movzx edx, word [ebx]
test dx, dx
mov edi, dword [ebp - 0x30]
je 0x42af91
add ebx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [ebx]
add ebx, 2
test dx, dx
jne 0x42af80
mov word [ecx], 0
jmp dword [0x44baa8]
push eax
call fcn.0040c4f0
add esp, 4
xor eax, eax
cmp word [esi], 0x2a
sete al
jmp dword [eax*4 + 0x44bab0]
xor eax, eax
cmp word [esi], 0x2a
sete al
jmp dword [eax*4 + 0x44bab0]
mov edx, dword [ebp - 0x2c]
mov dword [edx], 0xf1b4ffb9
mov dword [edx + 4], 0xf557f35c
mov dword [edx + 8], 0xc948f745
mov dword [edx + 0xc], 0xcd71cb6e
mov dword [edx + 0x10], 0xc162cf75
mov dword [edx + 0x14], 0xc573c365
mov dword [edx + 0x18], 0xd960c77a
mov dword [edx + 0x1c], 0xdd63db63
mov dword [edx + 0x20], 0xd168dfa2
mov dword [edx + 0x24], 0xd574d374
mov word [edx + 0x28], 0xd7d4
mov dword [edx + 0x2a], 0
xor eax, eax
nop
nop
nop
nop
mov ecx, eax
add cl, 0xd5
xor cl, byte [edx + eax]
add cl, 0xd7
mov byte [edx + eax], cl
inc eax
cmp eax, 0x2e
jne case.default.0x42b056
push 0
push edx
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
push 0x60
push 3
push 0x120089
push edi
push esi
call fcn.00443740
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44bab8]
mov dword [ebp - 0x64], esi
push 0
mov esi, dword [ebp - 0x14]
push esi
push dword [edi]
call fcn.00443b00
add esp, 0xc
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44bac0]
mov esi, dword [esi]
lea eax, [esi + 1]
push eax
call fcn.0040c4e0
add esp, 4
push 0
push esi
mov dword [ebp - 0x54], eax
push eax
push dword [edi]
call fcn.00443c10
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44bac8]
mov eax, dword [ebp - 0x14]
mov esi, dword [eax]
mov ebx, dword [ebp - 0x54]
mov byte [ebx + esi], 0
push 0x20
call fcn.0040c4e0
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 - 0x50], eax
mov ecx, eax
push esi
push ebx
call fcn.0042d770
movzx eax, al
jmp dword [eax*4 + 0x44bad0]
mov esi, dword [ebp - 0x28]
mov dword [esi], 0x45584ea9
mov dword [esi + 4], 0x52405079
mov dword [esi + 8], 0x7555a185
mov dword [esi + 0xc], 0x98bb6c7e
mov dword [esi + 0x10], 0x7e6d6878
mov dword [esi + 0x14], 0x606780b1
mov dword [esi + 0x18], 0x6d787075
mov word [esi + 0x1c], 0xdb6d
mov dword [esi + 0x1e], 0
mov byte [esi + 0x22], 0
mov edx, 0x55
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esi + edx - 0x55]
mov ebx, eax
mov edi, eax
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xfd
mul cl
mov ecx, eax
mov eax, edi
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0x57
mov byte [esi + edx - 0x55], al
inc edx
cmp edx, 0x78
jne case.default.0x42b1a4
mov ecx, dword [ebp - 0x50]
push esi
call fcn.0042d990
xor ecx, ecx
test eax, eax
setne cl
mov edx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x30]
jmp dword [ecx*4 + 0x44bad8]
mov esi, dword [ebp - 0x50]
jmp dword [0x44bae8]
jmp dword [0x44baf0]
mov ecx, esi
call fcn.0042db00
push esi
call fcn.0040c4f0
add esp, 4
nop
nop
nop
nop
nop
nop
mov ecx, esi
call fcn.0042db00
push esi
call fcn.0040c4f0
add esp, 4
jmp dword [0x44baf8]
jmp dword [0x44bb00]
push dword [ebp - 0x54]
call fcn.0040c4f0
add esp, 4
mov eax, dword [edi]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x44], 0x989b9a9d
mov word [ebp - 0x40], 0
mov edi, 0xad5ae75b
mov ecx, 0x52a518a4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [ebp + edi + 0x52a51861]
mov ebx, edi
and ebx, eax
add ebx, ebx
sub ebx, eax
add ebx, ecx
and ebx, edi
lea esi, [ebx + ebx]
lea edx, [edi + eax]
sub edx, esi
and dl, 0x38
add dl, al
sub eax, esi
add eax, edi
mov esi, ecx
mov ecx, eax
xor cl, 0x38
add cl, dl
and al, 0xc7
sub cl, al
add bl, bl
sub cl, bl
movzx eax, cl
mov ecx, esi
add eax, edi
inc al
mov byte [ebp + edi + 0x52a51861], al
inc edi
dec ecx
cmp edi, 0xad5ae761
jne 0x42b220
mov eax, dword [0x44fa10]
test eax, eax
mov esi, dword [ebp - 0x64]
je case.0x42a7db.28
mov ecx, dword [ebp - 0x44]
xor edx, edx
mov edi, dword [0x44fa14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x7e776f1
je 0x42b2a0
inc edx
cmp eax, edx
jne 0x42b290
jmp case.0x42a7db.28
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
jne 0x42b2cd
jmp dword [0x44bb08]
push esi
call fcn.0040c4f0
add esp, 4
mov eax, dword [ebp - 0x20]
mov esi, dword [eax]
mov edi, dword [eax + 4]
xor eax, eax
cmp esi, edi
sete al
jmp dword [eax*4 + 0x44bb10]
push dword [ebp - 0x10]
push 1
push dword [0x44fa18]
push eax
call fcn.00440700
add esp, 0x10
jmp dword [0x44bb08]
mov eax, dword [ebp - 0x20]
mov esi, dword [eax]
mov edi, dword [eax + 4]
xor eax, eax
cmp esi, edi
sete al
jmp dword [eax*4 + 0x44bb10]
sub edi, esi
sar edi, 3
imul eax, edi, 0x421
push eax
call fcn.0040c4e0
add esp, 4
mov dword [ebp - 0x14], eax
mov eax, dword [0x44fa0c]
mov edi, dword [ebp - 0x1c]
mov dword [edi], 0x51824f6b
mov dword [edi + 4], 0x55b753a1
mov dword [edi + 8], 0x59ba57b7
mov dword [edi + 0xc], 0x5daa5b9b
mov dword [edi + 0x10], 0x619a5fac
mov dword [edi + 0x14], 0x65966383
mov dword [edi + 0x18], 0x69416787
mov dword [edi + 0x1c], 0x6dbf6bb4
mov dword [edi + 0x20], 0x71896f98
mov dword [edi + 0x24], 0x759d7393
mov dword [edi + 0x28], 0x799a77a8
mov dword [edi + 0x2c], 0x7d9f7b89
mov dword [edi + 0x30], 0x1927f9f
mov dword [edi + 0x34], 0x5f4032e
mov dword [edi + 0x38], 0x9e007e0
mov word [edi + 0x3c], 0xb08
mov dword [edi + 0x3e], 0
mov ecx, 0xc9e3730d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [edi + ecx + 0x361c8cf3]
xor edx, ecx
mov esi, edx
and esi, 1
xor edx, 1
lea edx, [edx + esi*2]
add dl, 0xbe
mov byte [edi + ecx + 0x361c8cf3], dl
inc ecx
cmp ecx, 0xc9e3734f
jne 0x42b3a0
mov esi, dword [ebp - 0x3c]
push esi
push 0
push 0
push 0x1e
push edi
push 0
call eax
mov eax, dword [esi]
test eax, eax
mov dword [ebp - 0x10], eax
jns 0x42b405
mov eax, 0xffffffff
jmp 0x42b407
jmp dword [0x44bb24]
xor eax, eax
test esi, esi
jne 0x42b610
jmp 0x42b65b
add eax, eax
push eax
call fcn.0040c4e0
add esp, 4
mov dword [ebp - 0x2c], eax
mov eax, dword [0x44fa0c]
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x18]
mov dword [edx], 0x61d267bb
mov dword [edx + 4], 0x5dff63f1
mov dword [edx + 8], 0x59ca5fff
mov dword [edx + 0xc], 0x55ca5b9b
mov dword [edx + 0x10], 0x51ea57c4
mov dword [edx + 0x14], 0x4dde53f3
mov dword [edx + 0x18], 0x49914fef
mov dword [edx + 0x1c], 0x45e74bec
mov dword [edx + 0x20], 0x41d947c8
mov dword [edx + 0x24], 0x3dd543e3
mov dword [edx + 0x28], 0x39aa3f98
mov dword [edx + 0x2c], 0x35a73ba9
mov dword [edx + 0x30], 0x31a23797
mov dword [edx + 0x34], 0x2dbc33e6
mov dword [edx + 0x38], 0x29b02fb0
mov dword [edx + 0x3c], 0x2b28
mov byte [edx + 0x40], 0
mov ecx, 0x4746ade6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [edx]
mov eax, edi
not eax
lea esi, [edi + eax*2]
mov ebx, 0x3ffffffe
sub ebx, esi
lea eax, [edi + eax*2]
inc eax
and eax, 0xdfd399e0
and ebx, 0x202c661f
or ebx, eax
mov eax, 0xfe
sub eax, esi
xor ebx, ecx
xor ebx, 0xe0
and eax, ecx
or eax, ebx
lea esi, [ecx - 0x4746ad00]
and esi, edi
not eax
or eax, esi
add al, 0x83
mov byte [edx], al
inc edx
dec ecx
cmp ecx, 0x4746ada5
jne 0x42b4a0
push dword [ebp - 0x3c]
push dword [ebp - 0x10]
mov esi, dword [ebp - 0x2c]
push esi
push 0x1e
push dword [ebp - 0x18]
push 0
call dword [ebp - 0x30]
push 0x60
push 3
push 0x120089
mov edi, dword [ebp - 0x60]
push edi
push esi
call fcn.00443740
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44bb28]
xor edx, edx
mov esi, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x5c]
jmp dword [0x44bc20]
push dword [ebp - 0x2c]
mov edi, edx
call fcn.0040c4f0
add esp, 4
mov edx, edi
mov eax, edx
and al, 1
movzx ecx, al
mov eax, edi
jmp dword [ecx*4 + 0x44bc28]
mov dword [ebp - 0x1c], esi
mov byte [esi], 0
mov dword [ebx], 0xa7a2a151
mov dword [ebx + 4], 0xe3cfced5
mov dword [ebx + 8], 0xd8dcded1
mov dword [ebx + 0xc], 0xdaea3613
mov dword [ebx + 0x10], 0xcf15d4c1
mov dword [ebx + 0x14], 0xc9c3c6cb
mov dword [ebx + 0x18], 0xf3f60fcb
mov word [ebx + 0x1c], 0x75f8
mov dword [ebx + 0x1e], 0
mov byte [ebx + 0x22], 0
mov eax, 0xbc
mov ecx, 0x43
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ebx + eax - 0xbc]
mov esi, edx
not esi
mov edi, eax
and edi, esi
or esi, ecx
add edx, esi
inc edx
or edx, edi
add dl, 0x54
mov byte [ebx + eax - 0xbc], dl
inc eax
dec ecx
cmp eax, 0xdf
jne 0x42b5b0
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
sub edx, eax
mov ecx, dword [ebp + 8]
push edx
push eax
push ebx
call fcn.0040cf40
jmp dword [0x44bc30]
push dword [ebp - 0x14]
mov esi, eax
call fcn.0040c4f0
mov eax, esi
add esp, 4
and al, 1
mov ecx, dword [ebp - 0x20]
mov esi, dword [ecx]
mov edi, dword [ecx + 4]
test esi, esi
je 0x42b65b
cmp esi, edi
je 0x42b65b
mov dword [ebp - 0x18], eax
mov ebx, esi
jmp 0x42b627
add ebx, 8
cmp ebx, edi
je 0x42b638
mov eax, dword [ebx]
test eax, eax
je 0x42b620
push eax
call fcn.0040c4f0
add esp, 4
jmp 0x42b620
push esi
call fcn.0040c4f0
add esp, 4
mov eax, dword [ebp - 0x20]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov eax, dword [ebp - 0x18]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0
mov ebx, dword [ebp - 0x38]
push ebx
push dword [edi]
call fcn.00443b00
add esp, 0xc
not eax
shr eax, 0x1f
mov dword [ebp - 0x18], 0
mov esi, dword [ebp - 0x14]
jmp dword [eax*4 + 0x44bb30]
mov esi, dword [ebx]
lea eax, [esi + 1]
push eax
call fcn.0040c4e0
add esp, 4
mov dword [ebp - 0x24], eax
mov eax, dword [case.0x42b1a4.25]
nop
jmp eax
push 0
push esi
push dword [ebp - 0x24]
push dword [edi]
call fcn.00443c10
add esp, 0x10
not eax
shr eax, 0x1f
xor ecx, ecx
mov esi, dword [ebp - 0x14]
jmp dword [eax*4 + 0x44bb48]
mov esi, dword [ebx]
mov edi, dword [ebp - 0x24]
mov byte [edi + esi], 0
push 0x20
call fcn.0040c4e0
add esp, 4
mov ebx, 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 dword [ebp - 0x34], eax
jmp dword [0x44bb54]
add eax, 8
mov ecx, dword [eax]
xor eax, eax
test ecx, ecx
setne al
jmp dword [eax*4 + 0x44bae0]
lea ecx, [eax + eax]
not ecx
add ecx, eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x2c]
mov dword [edx + eax + 4], ecx
mov eax, dword [ebp - 0x34]
add eax, 8
mov edx, dword [ebp - 0x20]
mov dword [edx + 4], eax
mov ecx, dword [ebp - 0x24]
add ecx, 4
mov ecx, dword [ecx]
xor eax, eax
test ecx, ecx
setne al
mov edi, dword [ebp - 0x30]
jmp dword [eax*4 + 0x44bae0]
mov dword [ebp - 0x24], ecx
mov ecx, dword [ecx]
mov esi, dword [edx]
mov ebx, dword [edx + 4]
mov edi, ebx
sub edi, esi
cmp ebx, dword [edx + 8]
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x10], ecx
je 0x42b777
mov dword [ebp - 0x34], ebx
jmp 0x42b7fc
mov ecx, edi
sar ecx, 3
lea eax, [ecx + 1]
mov edi, ecx
shr edi, 1
add edi, ecx
cmp edi, eax
ja 0x42b78b
mov edi, eax
lea eax, [edi*8]
push eax
call fcn.0040c4e0
add esp, 4
test esi, esi
je 0x42b7df
cmp esi, ebx
je 0x42b7d2
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + edx]
mov dword [eax + edx], ecx
mov ecx, dword [esi + edx + 4]
mov dword [eax + edx + 4], ecx
mov dword [esi + edx], 0
lea ecx, [esi + edx]
add ecx, 8
add edx, 8
cmp ecx, ebx
jne 0x42b7b0
push esi
mov esi, eax
call fcn.0040c4f0
mov eax, esi
add esp, 4
mov ecx, dword [ebp - 0x20]
mov dword [ecx], eax
mov esi, eax
mov edx, dword [ebp - 0x28]
add eax, edx
mov dword [ebp - 0x34], eax
mov dword [ecx + 4], eax
lea eax, [esi + edi*8]
mov edi, edx
mov dword [ecx + 8], eax
mov ecx, dword [ebp - 0x10]
mov dword [esi + edi], 0
mov dword [ebp - 0x2c], esi
mov dword [esi + edi + 4], 0
mov ebx, 1
xor eax, eax
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 0x42b820
lea eax, [ebx - 1]
mov dword [ebp - 0x14], eax
push eax
call fcn.0040c4e0
add esp, 4
mov ecx, dword [ebp - 0x2c]
mov dword [ecx + edi], eax
mov ecx, dword [ebp - 0x14]
shr ecx, 2
mov edx, dword [ebp - 0x10]
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edi, dword [ebp - 0x14]
and edi, 0xfffffffc
mov ecx, dword [ebp - 0x10]
lea edx, [ecx + edi]
add edi, eax
mov eax, ebx
neg eax
or eax, 3
add eax, ebx
mov ecx, eax
shr ecx, 1
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x14], edi
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
test al, 1
je 0x42b891
and eax, 0xfffffffe
mov ecx, dword [ebp - 0x68]
movzx ecx, byte [ecx + eax]
mov edx, dword [ebp - 0x14]
mov byte [edx + eax], cl
mov eax, 0xffffffff
cmp ebx, 2
mov ecx, dword [ebp - 0x10]
je 0x42b720
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [ebp - 0x10], ecx
movzx edx, byte [ecx]
xor edx, eax
mov eax, edx
shr eax, 1
mov ecx, edx
and ecx, 1
neg ecx
and ecx, 0xedb88320
xor ecx, eax
mov edi, ecx
shr edi, 1
mov eax, edx
shl eax, 0x1e
sar eax, 0x1f
and eax, 0xedb88320
xor eax, edi
mov ebx, edx
shl ebx, 0x1d
sar ebx, 0x1f
and ebx, 0x76dc419
mov edi, edx
shl edi, 0x1c
sar edi, 0x1f
and edi, 0xedb8832
xor edi, ebx
mov ebx, edx
shl ebx, 0x1b
sar ebx, 0x1f
and ebx, 0x1db71064
shl edx, 0x1a
sar edx, 0x1f
and edx, 0x3b6e20c8
xor edx, ebx
xor edx, edi
mov edi, eax
shr edi, 6
xor edx, edi
shl ecx, 0x1a
sar ecx, 0x1f
and ecx, 0x76dc4190
xor ecx, edx
shl eax, 0x1a
sar eax, 0x1f
and eax, 0xedb88320
xor eax, ecx
mov ecx, dword [ebp - 0x10]
inc ecx
inc esi
jne 0x42b8b0
jmp 0x42b720
add edx, 4
mov edx, dword [edx]
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x44bb80]
mov eax, dword [edx]
cmp dword [edx + 0x18], 3
mov edi, 0
jne case.default.0x42b981
mov edi, dword [edx + 0x10]
mov dword [ebp - 0x10], eax
test eax, eax
setne al
test edi, edi
setne cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44bb88]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x1c], esi
mov eax, edi
mov ecx, eax
inc eax
cmp byte [ecx], 0
jne case.default.0x42b9b9
sub ecx, edi
inc ecx
shr ecx, 1
mov dword [ebp - 0x48], ecx
lea eax, [ecx + 1]
push eax
call fcn.0040c4e0
add esp, 4
movsx ecx, byte [edi]
xor edx, edx
test ecx, ecx
setne dl
mov dword [ebp - 0x28], eax
jmp dword [edx*4 + 0x44bb90]
mov byte [eax], 0
push 0
push 0x10
push 0
push dword [ebp - 0x10]
call fcn.0042dba0
add esp, 0x10
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
xor edi, edi
xor ebx, ebx
mov dword [ebp - 0x3c], eax
cmp ecx, eax
setne bl
mov esi, dword [case.0x42b1a4.61]
jmp dword [ebx*4 + 0x44bba0]
mov ebx, dword [ecx + 4]
mov eax, ebx
shr eax, 0x1c
shl ebx, 4
or ebx, 1
xor eax, dword [ebp - 0x30]
xor ebx, dword [ebp - 0x10]
xor edx, edx
or ebx, eax
sete dl
jmp dword [edx*4 + 0x44bbb8]
mov ebx, 1
jmp dword [ebx*4 + 0x44bbc0]
mov edi, dword [ecx]
xor eax, eax
jmp dword [eax*4 + 0x44bbc0]
jmp esi
add ecx, 8
xor ebx, ebx
cmp ecx, dword [ebp - 0x3c]
setne bl
jmp dword [ebx*4 + 0x44bba0]
jmp dword [0x44bbb0]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x44bbd8]
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x38]
jmp dword [0x44bbf8]
or ecx, edx
mov byte [eax], cl
inc eax
movsx ecx, byte [edi]
xor edx, edx
test ecx, ecx
setne dl
jmp dword [edx*4 + 0x44bb90]
lea esi, [edi + 1]
mov edx, ecx
or edx, 0x20
lea ebx, [edx - 0x61]
add edx, 0xffffffa9
add ecx, 0xffffffd0
cmp ecx, 0xa
jb 0x42bac1
mov ecx, 0xffffffff
cmp ebx, 6
jb case.default.0x42bad2
mov edx, ecx
movsx ebx, byte [esi]
xor ecx, ecx
test bl, bl
setne cl
jmp dword [ecx*4 + 0x44bb98]
mov byte [eax], dl
inc eax
movsx ecx, byte [esi]
xor edx, edx
test ecx, ecx
setne dl
mov edi, esi
jmp dword [edx*4 + 0x44bb90]
shl edx, 4
add edi, 2
mov ecx, ebx
or ecx, 0x20
lea esi, [ecx - 0x61]
add ecx, 0xffffffa9
add ebx, 0xffffffd0
cmp ebx, 0xa
jb 0x42bb0e
mov ebx, 0xffffffff
cmp esi, 6
jb 0x42ba90
mov ecx, ebx
jmp 0x42ba90
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x48]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x28]
mov dword [eax + 4], ecx
mov eax, 0xffffffff
mov esi, dword [ebp - 0x6c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + eax + 1], 0
lea eax, [eax + 1]
jne case.default.0x42bb88
mov dword [esi], eax
mov dword [esi + 4], edi
mov ebx, dword [ebp - 0x4c]
mov dword [ebx], 0
mov dword [ebx + 4], 0
push 0x31f26afb
push dword [0x44fa1c]
call fcn.00442c90
add esp, 8
push ebx
push 1
push 0
push 0
push esi
push 0
push dword [ebp - 0x58]
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44bbe0]
mov esi, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x38]
jmp dword [0x44bbf8]
movzx eax, byte [edi]
test al, al
mov ecx, dword [ebp - 0x1c]
je 0x42bbbb
inc edi
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [edi]
inc edi
test al, al
jne 0x42bbb0
mov byte [ecx], 0x3a
mov byte [ecx + 1], 0x20
mov eax, ecx
add eax, 2
mov edi, dword [ebp - 0x4c]
mov esi, dword [edi]
test esi, esi
je 0x42bbfe
mov ecx, dword [edi + 4]
mov edx, esi
and edx, 3
je 0x42bc06
xor edi, edi
nop
nop
nop
nop
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + edi], bl
inc edi
cmp edx, edi
jne 0x42bbe0
add eax, edi
mov edx, esi
sub edx, edi
mov ebx, eax
mov edi, dword [ebp - 0x4c]
jmp 0x42bc08
mov esi, eax
jmp dword [0x44bbe8]
mov edx, esi
cmp esi, 4
mov esi, ebx
jb 0x42bc49
nop
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 1], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
mov byte [eax + 2], bl
movzx ebx, byte [ecx]
cmp bl, 1
sbb ecx, 0xffffffff
lea esi, [eax + 4]
mov byte [eax + 3], bl
mov eax, esi
add edx, 0xfffffffc
jne 0x42bc10
jmp dword [0x44bbe8]
inc esi
mov al, 1
mov dword [ebp - 0x18], eax
mov ebx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x38]
jmp dword [0x44bbf8]
push dword [ebp - 0x28]
mov edi, edx
call fcn.0040c4f0
mov edx, edi
add esp, 4
add edx, 4
mov edx, dword [edx]
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x44bb80]
mov byte [esi], 0xa
push 0xd80d2c4a
push dword [0x44fa04]
call fcn.00442c90
add esp, 8
push dword [edi + 4]
call eax
mov byte [esi], 0xa
push 0xd80d2c4a
push dword [0x44fa04]
call fcn.00442c90
add esp, 8
push dword [edi + 4]
call eax
jmp dword [0x44bbf0]
mov esi, dword [ebp - 0x48]
mov dword [esi], 0xb7c4bed3
mov dword [esi + 4], 0xc2b4c4b3
mov dword [esi + 8], 0x473b2f07
mov dword [esi + 0xc], 0x2c01384a
mov dword [esi + 0x10], 0x4e333444
mov dword [esi + 0x14], 0x4949160b
mov dword [esi + 0x18], 0x5f292c56
mov dword [esi + 0x1c], 0x572d2c0f
mov word [esi + 0x20], 0xc125
mov dword [esi + 0x22], 0
mov eax, 0xa2b9178
nop
nop
nop
nop
nop
movzx ecx, byte [esi + eax - 0xa2b9178]
xor ecx, eax
mov edx, ecx
and edx, 0x27
xor ecx, 0xa7
lea ecx, [ecx + edx*2]
inc cl
mov byte [esi + eax - 0xa2b9178], cl
inc eax
cmp eax, 0xa2b919e
jne 0x42bd10
mov ecx, ebx
push esi
call fcn.0042d990
xor ecx, ecx
test eax, eax
setne cl
mov dword [ebp - 0x18], 0
mov esi, dword [ebp - 0x14]
jmp dword [ecx*4 + 0x44bb78]
add eax, 8
mov dword [ebp - 0x18], 0
mov edx, dword [eax]
xor eax, eax
test edx, edx
setne al
mov esi, dword [ebp - 0x14]
jmp dword [eax*4 + 0x44bb80]
mov eax, edx
and al, 1
movzx ecx, al
mov eax, edx
jmp dword [ecx*4 + 0x44bc28]
jmp dword [0x44bc30]
jmp dword [0x44bb68]
movzx eax, al
mov dword [ebp - 0x18], 0
mov esi, dword [ebp - 0x14]
jmp dword [eax*4 + 0x44bb70]
mov edi, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x18]
jmp dword [0x44bc00]
mov ecx, ebx
call fcn.0042db00
push ebx
call fcn.0040c4f0
mov ecx, dword [ebp - 0x18]
add esp, 4
mov eax, dword [case.0x42b1a4.77]
nop
nop
jmp eax
mov dword [ebp - 0x18], ecx
jmp dword [0x44bc18]
push dword [ebp - 0x24]
call fcn.0040c4f0
add esp, 4
mov dword [ebp - 0x1c], esi
mov eax, dword [edi]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x44], 0x989b9a9d
mov word [ebp - 0x40], 0
mov edi, 0xad5ae75b
mov ecx, 0x52a518a4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [ebp + edi + 0x52a51861]
mov ebx, edi
and ebx, eax
add ebx, ebx
sub ebx, eax
add ebx, ecx
and ebx, edi
lea esi, [ebx + ebx]
lea edx, [edi + eax]
sub edx, esi
and dl, 0x38
add dl, al
sub eax, esi
add eax, edi
mov esi, ecx
mov ecx, eax
xor cl, 0x38
add cl, dl
and al, 0xc7
sub cl, al
add bl, bl
sub cl, bl
movzx eax, cl
mov ecx, esi
add eax, edi
inc al
mov byte [ebp + edi + 0x52a51861], al
inc edi
dec ecx
cmp edi, 0xad5ae761
jne 0x42be10
mov eax, dword [0x44fa10]
test eax, eax
mov ebx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x1c]
je 0x42be98
mov ecx, dword [ebp - 0x44]
xor edx, edx
mov edi, dword [0x44fa14]
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x7e776f1
je 0x42be90
inc edx
cmp eax, edx
jne 0x42be80
jmp 0x42be98
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
jne 0x42bea1
mov edx, dword [ebp - 0x18]
jmp dword [0x44bc20]
push dword [ebp - 0x10]
push 1
push dword [0x44fa18]
push eax
call fcn.00440700
add esp, 0x10
mov edx, dword [ebp - 0x18]
jmp dword [0x44bc20]
mov ecx, ebx
push esi
push edi
call fcn.0042d770
mov ecx, ebx
push esi
push edi
call fcn.0042d770
jmp dword [0x44bb5c]
jmp eax
xor eax, eax
cmp ecx, 0xc
setne al
jmp dword [eax*4 + 0x44bc48]
mov dword [esp + 0x7c], ecx
mov ebx, dword [esp + ecx + 0x88]
mov esi, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + esi + 2], 0
lea esi, [esi + 2]
jne 0x42c280
mov edx, esi
sar edx, 1
mov eax, dword [esp + 0x5c]
lea ecx, [edx + eax]
mov dword [esp + 0x44], edx
add edx, eax
add edx, 0xd
lea eax, [ecx*2 + 0x1a]
test edx, edx
jns 0x42c2af
mov eax, 0xffffffff
push eax
call fcn.0040c4e0
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x38]
movzx ecx, word [eax]
mov eax, edi
test cx, cx
je 0x42c2e1
mov edx, dword [esp + 0x68]
mov eax, edi
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x42c2d0
mov word [eax], 0x5c
mov dword [esp + 8], 0xf306f114
mov dword [esp + 0xc], 0xef0ded7b
mov dword [esp + 0x10], 0xeb7ee909
mov dword [esp + 0x14], 0xe715e5c4
mov dword [esp + 0x18], 0xe303e16c
mov dword [esp + 0x1c], 0x9f039d10
mov word [esp + 0x20], 0x9998
mov dword [esp + 0x22], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xac
xor dl, byte [esp + ecx + 8]
add dl, 0xa4
mov byte [esp + ecx + 8], dl
inc ecx
cmp ecx, 0x1e
jne 0x42c330
add eax, 2
movzx ecx, word [ebx]
test cx, cx
je 0x42c371
lea edx, [ebx + 2]
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 0x42c360
mov word [eax], 0
movzx ecx, word [esp + 8]
test cx, cx
je 0x42c3a1
lea edx, [esp + 0xa]
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 0x42c390
mov word [eax], 0
lea eax, [esp + 0x48]
push 0x60
push 3
push 0x120089
push eax
push edi
call fcn.00443740
add esp, 0x14
not eax
shr eax, 0x1f
mov dword [esp + 0x40], ebx
jmp dword [eax*4 + 0x44bc58]
mov dword [esp], 0
jmp dword [0x44bcf8]
jmp dword [0x44bc60]
jmp dword [0x44bcb0]
push dword [esp + 0x3c]
call fcn.0040c4f0
add esp, 4
jmp dword [0x44bcd0]
mov dword [esp + 0x6c], edi
not eax
shr eax, 0x1f
mov dword [esp], 0
jmp dword [eax*4 + 0x44bc70]
mov edi, dword [esp + 0x58]
lea eax, [edi + 1]
push eax
call fcn.0040c4e0
add esp, 4
mov ebp, eax
mov ebx, dword [esp + 0x48]
jmp dword [0x44bc7c]
push 0
push edi
push ebp
push ebx
call fcn.00443c10
add esp, 0x10
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push 0
push edi
push ebp
push ebx
call fcn.00443c10
add esp, 0x10
jmp dword [0x44bc80]
not eax
shr eax, 0x1f
mov dword [esp], 0
jmp dword [eax*4 + 0x44bc88]
mov edi, dword [esp + 0x58]
jmp dword [0x44bc94]
lea eax, [esp + 0x58]
push 0
push eax
push dword [esp + 0x50]
call fcn.00443b00
add esp, 0xc
lea eax, [esp + 0x58]
push 0
push eax
push dword [esp + 0x50]
call fcn.00443b00
add esp, 0xc
jmp dword [0x44bc6c]
push ebp
call fcn.0040c4f0
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ebp
call fcn.0040c4f0
add esp, 4
jmp dword [0x44bcf0]
jmp dword [0x44bce0]
jmp dword [0x44bcec]
mov dword [esp + 0x78], esi
mov eax, dword [esp + 0x48]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x989b9a9d
mov word [esp + 0xc], 0
mov edi, 0xad5ae75b
mov esi, 0x52a518a4
movzx eax, byte [esp + edi + 0x52a518ad]
mov ecx, edi
and ecx, eax
add ecx, ecx
sub ecx, eax
add ecx, esi
and ecx, edi
lea ebp, [ecx + ecx]
lea ebx, [edi + eax]
sub ebx, ebp
and bl, 0x38
add bl, al
sub eax, ebp
add eax, edi
mov edx, eax
xor dl, 0x38
add dl, bl
and al, 0xc7
sub dl, al
add cl, cl
sub dl, cl
movzx eax, dl
add eax, edi
inc al
mov byte [esp + edi + 0x52a518ad], al
inc edi
dec esi
cmp edi, 0xad5ae761
jne 0x42c7f0
mov eax, dword [0x44fa10]
test eax, eax
mov esi, dword [esp + 0x78]
je 0x42c878
mov ecx, dword [esp + 8]
xor edx, edx
mov edi, dword [0x44fa14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x7e776f1
je 0x42c870
inc edx
cmp eax, edx
jne 0x42c860
jmp 0x42c878
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
jne 0x42c882
mov edi, dword [esp + 0x6c]
jmp dword [0x44bcf8]
push dword [esp + 4]
push 1
push dword [0x44fa18]
push eax
call fcn.00440700
add esp, 0x10
mov edi, dword [esp + 0x6c]
jmp dword [0x44bcf8]
mov dword [esp], 0
mov ebp, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
jmp dword [0x44bcc8]
push ebx
call fcn.0040c4f0
add esp, 4
push 0xd80d2c4a
push dword [0x44fa04]
call fcn.00442c90
add esp, 8
push dword [esp + 0x54]
call eax
jmp dword [0x44bcc8]
jmp dword [0x44bcd0]
push edi
call fcn.00404770
add esp, 4
nop
nop
nop
push edi
call fcn.00404770
add esp, 4
jmp dword [0x44bcd8]
mov byte [ebp + edi], 0
push ebp
call fcn.00403bb0
add esp, 4
mov byte [ebp + edi], 0
push ebp
call fcn.00403bb0
add esp, 4
jmp dword [0x44bc9c]
mov ebx, eax
xor eax, eax
test ebx, ebx
setne al
mov dword [esp], 0
jmp dword [eax*4 + 0x44bca0]
push ebx
call fcn.00404500
add esp, 4
mov dword [esp + 8], 0x7c7b6e75
mov dword [esp + 0xc], 0x696e506e
mov dword [esp + 0x10], 0x7460682e
mov dword [esp + 0x14], 0x61665866
mov dword [esp + 0x18], 0x140b0f6f
mov word [esp + 0x1c], 0x2013
mov byte [esp + 0x1e], 0xae
lea ecx, [esp + 8]
mov byte [ecx + 0x1b], 0
mov dword [ecx + 0x17], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edx
add cl, 0xaf
xor cl, byte [esp + edx + 8]
add cl, 0x95
mov byte [esp + edx + 8], cl
inc edx
cmp edx, 0x1c
jne 0x42c990
lea ecx, [esp + 8]
push ecx
push eax
call fcn.00404640
add esp, 8
mov edx, eax
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
mov eax, ecx
cmp byte [edx + ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x42c9c0
mov eax, ecx
and eax, 3
mov edi, ecx
or edi, 3
imul edi, eax
xor eax, 3
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
and ecx, 0xfffffffc
imul ecx, eax
add edi, ecx
mov ecx, dword [esp + 4]
shr edi, 2
movzx eax, byte [edx + ecx - 1]
cmp eax, 0x3d
je 0x42ca02
cmp eax, 0x2e
jne 0x42ca03
dec edi
movzx eax, byte [edx + ecx - 2]
cmp eax, 0x3d
mov dword [esp + 0x64], ebp
mov dword [esp + 0x60], ebx
mov dword [esp + 0x70], edx
je 0x42ca1e
cmp eax, 0x2e
jne 0x42ca1f
dec edi
mov dword [esp + 0x74], edi
lea eax, [edi + 1]
push eax
call fcn.0040c4e0
add esp, 4
mov dword [esp + 0x3c], eax
cmp dword [esp + 4], 0
je 0x42cb1d
mov dword [esp], 0
mov edi, 2
jmp 0x42ca63
mov dword [esp], ebp
mov ecx, dword [esp + 4]
lea eax, [edi + 4]
add edi, 2
cmp edi, ecx
mov edi, eax
jae 0x42cb1d
mov ebp, dword [esp + 0x70]
movzx eax, byte [ebp + edi - 2]
push eax
call fcn.00421b00
add esp, 4
mov ebx, eax
movzx eax, byte [ebp + edi - 1]
push eax
call fcn.00421b00
add esp, 4
mov bh, al
shl bl, 2
shr al, 4
and al, 3
or al, bl
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp]
mov byte [ecx + edx], al
mov ecx, dword [esp + 4]
inc edx
mov dword [esp], edx
cmp edi, ecx
jae 0x42ca53
movzx eax, byte [ebp + edi]
push eax
call fcn.00421b00
add esp, 4
cmp al, 0x40
je 0x42ca4f
mov bl, al
shl bh, 4
shr al, 2
and al, 0xf
or al, bh
mov ebp, dword [esp]
mov ecx, ebp
and ecx, 1
mov edx, ebp
xor edx, 1
lea edx, [edx + ecx*2]
mov ecx, dword [esp + 0x3c]
mov byte [ecx + ebp], al
lea eax, [edi + 1]
mov ecx, dword [esp + 4]
cmp eax, ecx
jae 0x42cb15
mov ebp, edx
mov eax, dword [esp + 0x70]
movzx eax, byte [eax + edi + 1]
push eax
call fcn.00421b00
add esp, 4
cmp al, 0x40
je 0x42ca4c
shl bl, 6
add al, bl
mov ecx, dword [esp + 0x3c]
mov byte [ecx + ebp], al
inc ebp
jmp 0x42ca4c
mov dword [esp], edx
jmp 0x42ca53
mov eax, dword [esp + 0x74]
add eax, 0xfffffffb
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x3c]
add eax, 5
mov dword [esp + 0x84], eax
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
push 0x31f26afb
push dword [0x44fa1c]
call fcn.00442c90
add esp, 8
lea ecx, [esp + 0x50]
lea edx, [esp + 0x80]
push ecx
push 0
push 0
push 0
push 0
push 0
push edx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44bca8]
lea eax, [esi + 0x10]
cmp dword [esp + 0x44], 0xfffffff8
jge 0x42cbbe
mov eax, 0xffffffff
push eax
call fcn.0040c4e0
add esp, 4
mov dword [esp + 8], 0x9ffa99ab
mov dword [esp + 0xc], 0xa3909dec
mov dword [esp + 0x10], 0xa7dea1d4
mov dword [esp + 0x14], 0xabaaa5d0
mov ecx, 0x9a
mov edx, 0x65
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx - 0x92]
mov edi, edx
and edi, 0x70
mov ebp, ecx
and ebp, 0x8f
or ebp, edi
xor ebp, 0x8f
and ebp, ebx
or ebx, edx
not ebx
or ebx, ebp
add bl, 0xfe
mov byte [esp + ecx - 0x92], bl
inc ecx
dec edx
cmp ecx, 0xaa
jne 0x42cc00
mov ecx, dword [esp + 0x40]
movzx edx, word [ecx]
mov ecx, eax
test dx, dx
je 0x42cc61
mov ecx, dword [esp + 0x40]
lea edi, [ecx + 2]
mov ecx, eax
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x42cc50
mov word [ecx], 0
movzx edx, word [esp + 8]
test dx, dx
je 0x42cc91
lea edi, [esp + 0xa]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x42cc80
mov word [ecx], 0
mov ecx, dword [esp + 0xec]
push dword [esp + 0x50]
push dword [esp + 0x58]
push eax
call fcn.0040ce10
lea eax, [esi + 0x10]
cmp dword [esp + 0x44], 0xfffffff8
jge 0x42ccba
mov eax, 0xffffffff
mov ebx, esi
push eax
call fcn.0040c4e0
add esp, 4
mov dword [esp + 8], 0x9ffa99ab
mov dword [esp + 0xc], 0xa3909dec
mov dword [esp + 0x10], 0xa7dea1d4
mov dword [esp + 0x14], 0xabaaa5d0
mov ebp, 0x9a
mov ecx, 0x65
nop
movzx edx, byte [esp + ebp - 0x92]
mov esi, ecx
and esi, 0x70
mov edi, ebp
and edi, 0x8f
or edi, esi
xor edi, 0x8f
and edi, edx
or edx, ecx
not edx
or edx, edi
add dl, 0xfe
mov byte [esp + ebp - 0x92], dl
inc ebp
dec ecx
cmp ebp, 0xaa
jne 0x42ccf0
mov edx, dword [esp + 0x40]
movzx ecx, word [edx]
mov edi, eax
test cx, cx
je 0x42cd51
add edx, 2
mov edi, eax
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x42cd40
mov word [edi], 0
movzx ecx, word [esp + 8]
test cx, cx
je 0x42cd83
lea edx, [esp + 0xa]
mov esi, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x42cd70
jmp 0x42cd85
mov esi, ebx
mov word [edi], 0
mov ecx, dword [esp + 0xec]
push dword [esp + 0x50]
push dword [esp + 0x58]
mov ebx, eax
push eax
call fcn.0040ce10
mov ebp, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
jmp dword [0x44bcb8]
mov dword [esp], eax
jmp dword [0x44bcc0]
jmp dword [0x44bc50]
push dword [esp + 0x38]
call fcn.0040c4f0
add esp, 4
mov eax, dword [esp + 0x4c]
and al, 1
add esp, 0xd8
pop esi
pop edi
pop ebx
pop ebp
ret