Function at 0x444f17
Capabilities:
Authenticate hmac
Encode data using base64
Parse credit card information
Parse pe header

Disassembly:
push ebp
lea ebp, [esp - 0x54]
sub esp, 0xc4
mov eax, dword [ebp + 0x5c]
mov ecx, dword [eax]
mov eax, dword [ebp + 0x60]
push ebx
mov ebx, dword [eax]
mov eax, dword [ebp + 0x64]
push esi
mov esi, dword [eax]
mov eax, ecx
shr eax, 9
and eax, 1
mov dword [ebp - 0x4c], eax
xor eax, 1
push edi
mov edi, dword [ebp + 0x78]
mov dword [ebp - 0x48], eax
xor edx, edx
push 0xfffffffffffffffe
pop eax
mov dword [ebp + 0x18], eax
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x30], eax
mov eax, ecx
and eax, 1
shl eax, 8
mov dword [ebp + 0x20], edx
mov dword [ebp + 0x2c], edx
mov dword [ebp + 0x28], ecx
mov dword [ebp - 0x18], edx
mov dword [ebp - 4], edx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp + 0x10], edx
mov dword [ebp - 0x20], edx
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x4c], edx
mov dword [ebp + 8], edx
mov dword [ebp + 4], edx
mov dword [ebp - 0x10], eax
movzx eax, byte [esi]
mov ecx, dword [ebp + 0x7c]
mov dword [ebp + 0x40], eax
mov eax, dword [edi + 0x10]
add eax, 0x1000
cmp ecx, edx
je 0x444ff6
cmp ebx, eax
ja 0x446b2e
cmp ebx, dword [ebp - 0xc]
jae 0x444fb0
mov ebx, dword [ebp - 0xc]
mov eax, ebx
sub eax, dword [ebp - 0xc]
xor edx, edx
add dword [ecx], eax
mov eax, dword [ebp + 0x4c]
cmp eax, edx
je 0x444feb
cmp eax, dword [ebp - 0x24]
jbe 0x444fee
mov esi, dword [ebp - 0x24]
mov eax, ebx
sub eax, dword [ebp + 0x4c]
push eax
push dword [ebp + 0x4c]
push esi
call fcn.0044b6c0
mov eax, esi
sub eax, dword [ebp + 0x4c]
add esp, 0xc
add ebx, eax
mov dword [ebp + 0x4c], esi
mov esi, dword [ebp + 0x50]
xor edx, edx
jmp 0x444fee
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp + 0x7c]
mov dword [ebp - 0xc], ebx
jmp 0x444fff
cmp dword [edi + 0x20], eax
ja 0x446b2e
cmp dword [ebp + 0x10], edx
je 0x445060
cmp dword [ebp + 0x40], edx
je 0x445060
cmp dword [ebp + 0x40], 0x5c
jne 0x445022
lea eax, [esi + 1]
cmp byte [eax], 0x45
jne 0x445022
mov dword [ebp + 0x10], edx
mov dword [ebp + 0x50], eax
jmp 0x4459f5
cmp dword [ebp + 8], edx
je 0x44503e
cmp ecx, edx
jne 0x44503b
mov ecx, dword [ebp + 8]
push edi
mov eax, esi
call fcn.00444b4a
add esp, 4
xor edx, edx
mov dword [ebp + 8], edx
test word [ebp + 0x28], 0x4000
je 0x445a94
mov ecx, dword [ebp + 0x50]
mov esi, edi
mov eax, ebx
mov dword [ebp + 8], ebx
call fcn.00444b26
mov ebx, eax
jmp 0x445a94
mov eax, dword [ebp + 0x40]
cmp eax, 0x2a
je 0x4450d5
cmp eax, 0x2b
je 0x4450d5
cmp eax, 0x3f
je 0x4450d5
cmp eax, 0x7b
jne 0x445083
lea eax, [esi + 1]
call fcn.004443c0
test eax, eax
jne 0x4450d5
and dword [ebp + 0x3c], 0
cmp dword [ebp + 8], 0
je 0x4450b2
mov eax, dword [ebp - 0x18]
dec dword [ebp - 0x18]
test eax, eax
jg 0x4450b2
cmp dword [ebp + 0x7c], 0
jne 0x4450ae
mov ecx, dword [ebp + 8]
push edi
mov eax, esi
call fcn.00444b4a
mov esi, dword [ebp + 0x50]
add esp, 4
and dword [ebp + 8], 0
test byte [ebp + 0x28], 8
je 0x445125
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp + 0x40]
test byte [ecx + eax], 1
jne 0x4459f5
cmp ecx, 0x23
mov esi, dword [ebp + 0x50]
jne 0x445125
jmp 0x4451b3
mov dword [ebp + 0x3c], 1
jmp 0x4450b2
cmp dword [edi + 0x48], 0
je 0x44518d
mov eax, dword [edi + 0x1c]
cmp esi, eax
jae 0x4451b3
push 0
lea ecx, [edi + 0x4c]
push ecx
push eax
push esi
call fcn.00449a76
mov esi, dword [ebp + 0x50]
add esp, 0x10
test eax, eax
je 0x4451b3
mov eax, dword [edi + 0x4c]
lea esi, [esi + eax - 1]
mov dword [ebp + 0x50], esi
cmp byte [esi], 0
jne 0x4459f5
and dword [ebp + 0x40], 0
xor ecx, ecx
inc ecx
test word [ebp + 0x28], 0x4000
je 0x44514d
cmp dword [ebp + 0x3c], 0
jne 0x44514d
mov ecx, dword [ebp + 0x50]
mov esi, edi
mov eax, ebx
mov dword [ebp + 8], ebx
call fcn.00444b26
mov esi, dword [ebp + 0x50]
xor ecx, ecx
mov ebx, eax
inc ecx
mov eax, dword [ebp + 0x40]
cmp eax, 0x2e
jg 0x445a3c
je 0x445a1b
xor edx, edx
sub eax, edx
je 0x445a61
sub eax, 0x24
je 0x445a10
sub eax, 4
je 0x4451d2
dec eax
je 0x445a61
dec eax
je 0x4451c6
dec eax
jne 0x445a94
mov dword [ebp + 0x20], ecx
jmp 0x4451c9
mov ecx, dword [edi + 0x4c]
mov edx, dword [edi + 0x1c]
sub edx, ecx
cmp esi, edx
ja 0x4451b3
cmp al, byte [edi + 0x50]
jne 0x4451b3
cmp ecx, 1
je 0x44510e
mov al, byte [esi + 1]
cmp al, byte [edi + 0x51]
je 0x44510e
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
jne 0x4450de
jmp 0x445121
mov dword [ebp + 0x20], edx
or dword [ebp + 0x2c], 0xffffffff
jmp 0x446404
mov eax, dword [ebp + 0x28]
inc esi
mov dword [ebp + 0x3c], edx
mov edx, dword [edi + 0x20]
mov dword [ebp + 0x50], esi
cmp byte [esi], 0x3f
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x48], 0x59
mov dword [ebp + 4], edx
jne 0x44596e
inc esi
mov dword [ebp + 0x50], esi
mov dl, byte [esi]
movzx eax, dl
cmp eax, 0x3a
jg 0x445585
je 0x445575
cmp eax, 0x21
je 0x445491
cmp eax, 0x23
je 0x445462
cmp eax, 0x26
je 0x445457
cmp eax, 0x27
je 0x4457eb
cmp eax, 0x28
je 0x44524d
cmp eax, 0x2f
jle 0x4455b6
cmp eax, 0x39
jle 0x4456d1
jmp 0x4455b6
cmp byte [esi + 1], 0x3f
mov dword [ebp + 0x48], 0x5a
jne 0x445275
mov al, byte [esi + 2]
cmp al, 0x3d
je 0x44594f
cmp al, 0x21
je 0x44594f
cmp al, 0x3c
je 0x44594f
mov byte [ebx + 3], 0x5e
mov edx, dword [ebp + 0x50]
lea eax, [edx + 1]
mov cl, byte [eax]
cmp cl, 0x52
mov dword [ebp + 0x3c], 3
jne 0x4452a2
add edx, 2
cmp byte [edx], 0x26
jne 0x4452a2
or dword [ebp + 0x44], 0xffffffff
mov dword [ebp + 0x50], edx
mov byte [ebx + 3], 0x5f
jmp 0x4452c5
cmp cl, 0x3c
jne 0x4452b0
mov dword [ebp + 0x44], 0x3e
jmp 0x4452bc
cmp cl, 0x27
jne 0x4452c1
mov dword [ebp + 0x44], 0x27
mov dword [ebp + 0x50], eax
jmp 0x4452c5
and dword [ebp + 0x44], 0
mov eax, dword [ebp + 0x50]
mov edx, dword [edi + 0xc]
inc eax
movzx ecx, byte [eax]
test byte [ecx + edx], 0x10
je 0x446b3c
and dword [ebp + 0x40], 0
mov ecx, eax
mov dword [ebp + 0x50], ecx
movzx eax, byte [ecx]
test byte [edx + eax], 0x10
mov dword [ebp + 0x34], ecx
je 0x44531d
cmp dword [ebp + 0x40], 0
jl 0x445310
test byte [eax + 0x45a1c8], 4
je 0x44530c
mov esi, dword [ebp + 0x40]
imul esi, esi, 0xa
lea eax, [esi + eax - 0x30]
mov dword [ebp + 0x40], eax
jmp 0x445310
or dword [ebp + 0x40], 0xffffffff
inc ecx
mov dword [ebp + 0x50], ecx
movzx eax, byte [ecx]
test byte [edx + eax], 0x10
jne 0x4452ee
mov eax, ecx
sub eax, dword [ebp + 0x34]
cmp dword [ebp + 0x44], 0
mov dword [ebp + 0x38], eax
jle 0x44533b
movzx eax, byte [ecx]
inc ecx
cmp eax, dword [ebp + 0x44]
mov dword [ebp + 0x50], ecx
jne 0x446b4d
mov al, byte [ecx]
inc ecx
cmp al, 0x29
mov dword [ebp + 0x50], ecx
jne 0x446b4d
cmp dword [ebp + 0x7c], 0
jne 0x44594f
and dword [ebp + 0x4c], 0
cmp dword [edi + 0x28], 0
mov esi, dword [edi + 0x24]
jle 0x445387
push dword [ebp + 0x38]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x34]
call fcn.0044acf0
add esp, 0xc
test eax, eax
je 0x445384
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x4c]
mov eax, dword [ebp + 0x4c]
cmp eax, dword [edi + 0x28]
jl 0x445360
mov ecx, dword [ebp + 0x50]
mov eax, dword [ebp + 0x4c]
cmp eax, dword [edi + 0x28]
jge 0x4453a6
xor eax, eax
mov ah, byte [esi]
mov al, byte [esi + 1]
mov ecx, eax
sar ecx, 8
mov byte [ebx + 4], cl
mov byte [ebx + 5], al
jmp 0x44594f
mov eax, dword [ebp + 0x28]
shr eax, 3
xor esi, esi
inc esi
and eax, esi
push eax
push dword [ebp + 0x38]
mov eax, dword [edi + 0x30]
push dword [ebp + 0x34]
call fcn.004444b7
add esp, 0xc
test eax, eax
jg 0x445396
xor ecx, ecx
cmp dword [ebp + 0x44], ecx
jne 0x446b5f
mov edx, dword [ebp + 0x34]
cmp byte [edx], 0x52
jne 0x445417
cmp dword [ebp + 0x38], esi
jle 0x445401
movzx eax, byte [esi + edx]
test byte [eax + 0x45a1c8], 4
je 0x446b5f
imul ecx, ecx, 0xa
inc esi
cmp esi, dword [ebp + 0x38]
lea ecx, [ecx + eax - 0x30]
jl 0x4453df
test ecx, ecx
jne 0x445406
mov ecx, 0xffff
mov eax, ecx
mov byte [ebx + 3], 0x5f
sar eax, 8
mov byte [ebx + 5], cl
jmp 0x44594c
cmp dword [ebp + 0x38], 6
jne 0x44543d
push 6
push 0x45a2cc
push edx
call fcn.0044acf0
add esp, 0xc
test eax, eax
jne 0x44543d
mov byte [ebx + 3], 0x60
mov dword [ebp + 0x3c], esi
jmp 0x44594f
mov eax, dword [ebp + 0x40]
test eax, eax
jg 0x445396
neg eax
sbb eax, eax
and eax, 0xffffffec
add eax, 0x23
jmp 0x446c1e
push 0x29
pop edx
mov dword [ebp + 0x3c], ecx
jmp 0x445b9f
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
je 0x445483
cmp al, 0x29
je 0x44547a
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
jne 0x44546c
cmp byte [esi], 0
jne 0x4459f5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x12
jmp 0x446c83
mov dword [ebp + 0x48], 0x53
inc esi
and dword [ebp + 0x4c], 0
mov dword [ebp + 0x50], esi
mov ecx, dword [ebp + 0x48]
mov byte [ebx], cl
mov eax, dword [edi + 0x40]
mov dword [ebp + 0x44], eax
xor eax, eax
cmp ecx, 0x54
mov dword [ebp + 0x1c], ebx
mov dword [ebp - 4], eax
je 0x4454bd
cmp ecx, 0x55
jne 0x4454c0
xor eax, eax
inc eax
mov ecx, dword [ebp + 0x7c]
neg ecx
sbb ecx, ecx
lea edx, [ebp - 4]
and ecx, edx
push ecx
push edi
push dword [ebp + 0x74]
lea ecx, [ebp - 8]
push ecx
lea ecx, [ebp - 0x14]
push ecx
push dword [ebp + 0x3c]
push eax
push dword [ebp + 0x68]
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x1c]
push eax
mov eax, dword [ebp + 0x28]
and eax, 7
push eax
push dword [ebp + 0x24]
call fcn.00446c95
add esp, 0x30
test eax, eax
je 0x446c83
mov esi, dword [ebp + 0x48]
cmp esi, 0x5a
jne 0x445534
mov eax, ebx
xor edi, edi
xor ecx, ecx
mov ch, byte [eax + 1]
inc edi
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x4f
jne 0x44550e
cmp byte [ebx + 3], 0x60
jne 0x44597d
cmp edi, 1
jg 0x446bc8
push 0x60
pop esi
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + 0x50]
cmp byte [eax], 0x29
jne 0x446be4
mov eax, dword [ebp + 0x7c]
xor edx, edx
cmp eax, edx
je 0x44599d
mov ecx, dword [ebp - 4]
add ecx, 0xfffffffa
add dword [eax], ecx
inc ebx
mov byte [ebx], dl
mov byte [ebx + 1], 3
inc ebx
inc ebx
mov byte [ebx], 0x4f
inc ebx
mov byte [ebx], dl
mov byte [ebx + 1], 3
mov ecx, dword [ebp - 0x14]
inc ebx
inc ebx
jmp 0x4459a0
mov dword [ebp + 0x48], 0x58
inc esi
mov dword [ebp + 0x50], esi
jmp 0x44594f
sub eax, 0x3c
je 0x4457c8
dec eax
je 0x4457bc
dec eax
je 0x4457b0
sub eax, 5
je 0x445745
sub eax, 0xd
je 0x44570b
dec eax
dec eax
je 0x4456cd
xor eax, eax
xor esi, esi
cmp dl, 0x29
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x44], esi
lea ecx, [ebp + 0x44]
je 0x44564c
cmp dl, 0x3a
je 0x445646
inc dword [ebp + 0x50]
movzx eax, dl
cmp eax, 0x69
jg 0x44561c
je 0x445617
cmp eax, 0x2d
je 0x445612
cmp eax, 0x4a
je 0x445603
cmp eax, 0x55
je 0x4455fb
cmp eax, 0x58
jne 0x446b6d
or dword [ecx], 0x40
jmp 0x44563c
or dword [ecx], 0x200
jmp 0x44563c
or dword [ecx], 0x80000
or dword [edi + 0x3c], 0x8000000
jmp 0x44563c
lea ecx, [ebp + 0x48]
jmp 0x44563c
or dword [ecx], 1
jmp 0x44563c
cmp eax, 0x6d
je 0x445639
cmp eax, 0x73
je 0x445634
cmp eax, 0x78
jne 0x446b6d
or dword [ecx], 8
jmp 0x44563c
or dword [ecx], 4
jmp 0x44563c
or dword [ecx], 2
mov eax, dword [ebp + 0x50]
mov dl, byte [eax]
cmp dl, 0x29
jne 0x4455cc
mov esi, dword [ebp + 0x44]
mov eax, dword [ebp + 0x48]
or esi, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x50]
not eax
and esi, eax
cmp byte [ecx], 0x29
mov eax, esi
mov dword [ebp + 0x24], eax
jne 0x4456be
mov ecx, dword [edi + 0x14]
add ecx, 3
cmp ebx, ecx
jne 0x445681
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x445676
cmp dword [ecx], 6
jne 0x445681
mov dword [edi + 0x3c], eax
mov dword [ebp + 0x28], eax
jmp 0x4457a7
mov ecx, eax
xor ecx, dword [ebp + 0x28]
test cl, 7
je 0x445697
mov byte [ebx], 0x13
mov cl, al
inc ebx
and cl, 7
mov byte [ebx], cl
inc ebx
mov ecx, dword [ebp + 0x5c]
mov dword [ecx], eax
mov ecx, eax
shr ecx, 9
and ecx, 1
mov dword [ebp + 0x28], eax
mov dword [ebp - 0x4c], ecx
xor ecx, 1
and eax, 1
shl eax, 8
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x10], eax
jmp 0x4457a7
inc dword [ebp + 0x50]
mov dword [ebp + 0x48], 0x58
jmp 0x44594f
inc esi
mov dword [ebp + 0x50], esi
and dword [ebp + 0x40], 0
jmp 0x4456e8
mov ecx, dword [ebp + 0x40]
imul ecx, ecx, 0xa
lea eax, [ecx + eax - 0x30]
inc esi
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + 0x45a1c8], 4
jne 0x4456d7
cmp byte [esi], 0x29
je 0x445c61
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1d
jmp 0x446c83
inc esi
mov dword [ebp + 0x50], esi
mov dl, byte [esi]
cmp dl, 0x3d
je 0x445732
cmp dl, 0x3e
je 0x445732
cmp dl, 0x3c
je 0x4457eb
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x29
jmp 0x446c83
xor eax, eax
cmp dl, 0x3e
sete al
push 0x29
pop edx
mov dword [ebp + 0x3c], eax
jmp 0x445b9f
mov byte [ebx], 0x4d
mov esi, dword [ebp + 0x50]
mov dword [ebp + 8], ebx
inc ebx
mov dword [ebp - 0x18], ecx
xor edx, edx
jmp 0x44575d
imul edx, edx, 0xa
lea edx, [edx + eax - 0x30]
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + 0x45a1c8], 4
jne 0x445756
cmp byte [esi], 0x29
jne 0x446b7e
cmp edx, 0xff
jg 0x446b8c
mov byte [ebx], dl
mov eax, dword [ebp + 0x50]
sub eax, dword [edi + 0x18]
inc ebx
inc eax
sar eax, 8
mov byte [ebx], al
mov al, byte [ebp + 0x50]
sub al, byte [edi + 0x18]
mov byte [ebx + 2], 0
inc al
mov byte [ebx + 1], al
mov byte [ebx + 3], 0
add ebx, 4
and dword [ebp + 0x4c], 0
jmp 0x4459f5
mov dword [ebp + 0x48], 0x57
jmp 0x44557c
mov dword [ebp + 0x48], 0x52
jmp 0x445498
mov al, byte [esi + 1]
cmp al, 0x21
je 0x445965
cmp al, 0x3d
je 0x445957
mov ecx, dword [edi + 0xc]
movzx eax, al
test byte [eax + ecx], 0x10
je 0x446bb6
mov ecx, dword [edi + 0xc]
xor eax, eax
cmp dl, 0x3c
setne al
dec eax
and eax, 0x17
add eax, 0x27
inc esi
mov dword [ebp + 0x50], esi
mov dword [ebp + 0x44], eax
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
mov dword [ebp + 0x34], esi
je 0x44581f
mov eax, ecx
inc esi
mov dword [ebp + 0x50], esi
movzx ecx, byte [esi]
test byte [ecx + eax], 0x10
jne 0x445812
mov eax, esi
sub eax, dword [ebp + 0x34]
cmp dword [ebp + 0x7c], 0
mov dword [ebp + 0x38], eax
je 0x44586c
movzx ecx, byte [esi]
cmp ecx, dword [ebp + 0x44]
jne 0x446b9a
cmp dword [edi + 0x28], 0x2710
jge 0x446ba8
lea ecx, [eax + 3]
cmp ecx, dword [edi + 0x2c]
jle 0x44592f
cmp eax, 0x20
mov dword [edi + 0x2c], ecx
jle 0x44592f
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x30
jmp 0x446c83
mov eax, dword [edi + 0x28]
mov esi, dword [edi + 0x24]
and dword [ebp + 0x4c], 0
test eax, eax
mov dword [ebp + 0x44], esi
jle 0x445901
mov edi, dword [ebp + 0x44]
mov ecx, dword [ebp + 0x38]
mov esi, dword [ebp + 0x34]
add edi, 2
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x445898
sbb edx, edx
sbb edx, 0xffffffff
test edx, edx
jne 0x4458c5
mov ecx, dword [ebp + 0x38]
mov edx, dword [ebp + 0x44]
cmp byte [edx + ecx + 2], 0
jne 0x4458c0
test dword [ebp + 0x28], 0x80000
jne 0x4458c7
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2b
jmp 0x446c83
or edx, 0xffffffff
test edx, edx
jl 0x4458df
mov ecx, dword [ebp + 0x78]
mov edx, dword [ecx + 0x2c]
add dword [ebp + 0x44], edx
inc dword [ebp + 0x4c]
mov edx, dword [ebp + 0x4c]
cmp edx, dword [ecx + 0x28]
jl 0x445881
mov edi, ecx
jmp 0x4458fe
sub eax, dword [ebp + 0x4c]
mov ecx, dword [ebp + 0x78]
mov ecx, dword [ecx + 0x2c]
imul eax, ecx
push eax
mov eax, dword [ebp + 0x44]
push eax
add ecx, eax
push ecx
call fcn.0044b6c0
mov edi, dword [ebp + 0x78]
add esp, 0xc
mov esi, dword [ebp + 0x44]
mov eax, dword [edi + 0x30]
push dword [ebp + 0x38]
inc eax
push dword [ebp + 0x34]
sar eax, 8
mov byte [esi], al
mov al, byte [edi + 0x30]
inc al
mov byte [esi + 1], al
lea eax, [esi + 2]
push eax
call fcn.0044ae10
mov eax, dword [ebp + 0x38]
mov byte [esi + eax + 2], 0
mov esi, dword [ebp + 0x50]
add esp, 0xc
inc esi
inc dword [edi + 0x28]
mov dword [ebp + 0x50], esi
inc dword [edi + 0x30]
mov eax, dword [edi + 0x30]
sar eax, 8
mov byte [ebx + 3], al
mov al, byte [edi + 0x30]
mov dword [ebp + 0x3c], 2
mov byte [ebx + 4], al
mov dword [ebp + 0x4c], ebx
jmp 0x4454a0
mov dword [ebp + 0x48], 0x54
inc esi
inc esi
jmp 0x445499
mov dword [ebp + 0x48], 0x55
jmp 0x44595e
test ax, 0x1000
je 0x445936
mov dword [ebp + 0x48], 0x58
jmp 0x44594f
cmp edi, 2
jg 0x446bd6
cmp edi, 1
jne 0x445534
or ecx, 0xffffffff
mov dword [ebp - 8], ecx
mov dword [ebp - 0x14], ecx
jmp 0x445537
mov ebx, dword [ebp + 0x1c]
cmp esi, 0x60
je 0x4459f2
cmp esi, 0x57
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 0x30]
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x20], edx
jl 0x445a02
cmp eax, 0xfffffffe
jne 0x4459d8
cmp ecx, edx
jl 0x4459ce
mov dword [ebp + 0x30], ecx
mov dword [ebp - 0x20], 1
jmp 0x4459d2
or dword [ebp + 0x30], 0xffffffff
or dword [ebp + 0xc], 0xffffffff
jmp 0x4459e7
cmp ecx, edx
jl 0x4459e7
cmp dword [ebp - 8], edx
jge 0x4459ec
or ecx, dword [ebp + 0x44]
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], edx
jl 0x4459f2
mov eax, dword [ebp - 8]
mov dword [ebp + 0x14], eax
mov edi, dword [ebp + 0x78]
inc dword [ebp + 0x50]
mov esi, dword [ebp + 0x50]
xor edx, edx
jmp 0x444f8b
cmp esi, 0x52
jne 0x4459f2
mov eax, dword [ebp - 8]
cmp eax, edx
jl 0x4459f2
jmp 0x4459ef
mov dword [ebp + 0x4c], edx
mov byte [ebx], 0x15
jmp 0x445ade
cmp dword [ebp + 0x30], 0xfffffffe
jne 0x445a25
or dword [ebp + 0x30], 0xffffffff
mov eax, dword [ebp + 0x30]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x4c], ebx
mov byte [ebx], 0xb
jmp 0x445ade
sub eax, 0x3f
je 0x4463fd
sub eax, 0x1c
je 0x445ddd
dec eax
je 0x445ae4
dec eax
dec eax
je 0x445ac7
sub eax, 0x1d
je 0x445a8e
dec eax
jne 0x445a94
mov eax, dword [ebp + 0x6c]
mov edx, dword [ebp + 0x30]
mov dword [eax], edx
mov eax, dword [ebp + 0x70]
mov edx, dword [ebp + 0x14]
mov dword [eax], edx
mov eax, dword [ebp + 0x60]
mov dword [eax], ebx
mov eax, dword [ebp + 0x64]
mov dword [eax], esi
mov eax, dword [ebp + 0x7c]
test eax, eax
je 0x445a87
sub ebx, dword [ebp - 0xc]
add dword [eax], ebx
mov eax, ecx
jmp 0x446c8d
cmp dword [ebp + 0x3c], 0
jne 0x445a9c
mov al, byte [ebp + 0x40]
jmp 0x44635d
mov edi, dword [ebp + 0x68]
push edi
lea eax, [ebp + 0x2c]
push eax
lea eax, [ebp + 0x20]
push eax
lea eax, [esi + 1]
call fcn.00444422
add esp, 0xc
cmp dword [edi], 0
mov dword [ebp + 0x50], eax
jne 0x446c83
mov edi, dword [ebp + 0x78]
jmp 0x446404
test byte [ebp + 0x28], 2
je 0x445ad7
cmp dword [ebp + 0x30], 0xfffffffe
jne 0x445ad7
or dword [ebp + 0x30], 0xffffffff
and dword [ebp + 0x4c], 0
mov byte [ebx], 0x14
inc ebx
jmp 0x4459f5
push 0
push dword [ebp + 0x28]
lea eax, [ebp + 0x50]
push dword [edi + 0x30]
mov dword [ebp - 0x1c], esi
push dword [ebp + 0x68]
push eax
call fcn.00444108
mov ecx, dword [ebp + 0x68]
add esp, 0x14
cmp dword [ecx], 0
jne 0x446c83
test eax, eax
jge 0x44635a
mov ecx, eax
neg ecx
cmp ecx, 0x14
jne 0x445b40
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x5c
jne 0x445b34
add eax, 2
cmp byte [eax], 0x45
jne 0x445b34
mov dword [ebp + 0x50], eax
jmp 0x4459f2
mov dword [ebp + 0x10], 1
jmp 0x4459f2
cmp ecx, 0x13
je 0x4459f2
cmp dword [ebp + 0x30], 0xfffffffe
jne 0x445b5d
cmp ecx, 4
jle 0x445b5d
cmp ecx, 0x11
jge 0x445b5d
or dword [ebp + 0x30], 0xffffffff
cmp ecx, 0x15
mov edx, dword [ebp + 0x30]
mov dword [ebp + 0xc], edx
mov edx, dword [ebp + 0x14]
mov dword [ebp + 0x18], edx
jne 0x445d57
mov esi, dword [ebp + 0x50]
inc esi
mov dl, byte [esi]
cmp dl, 0x3c
je 0x445b86
cmp dl, 0x27
jne 0x445d57
and dword [ebp + 0x3c], 0
mov edi, dword [ebp + 0x78]
xor edx, edx
mov dword [ebp + 0x50], esi
cmp byte [esi], 0x3c
setne dl
dec edx
and edx, 0x17
add edx, 0x27
mov ecx, dword [edi + 0xc]
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
mov dword [ebp + 0x34], esi
je 0x445bc1
mov eax, ecx
inc esi
mov dword [ebp + 0x50], esi
movzx ecx, byte [esi]
test byte [ecx + eax], 0x10
jne 0x445bb4
mov eax, esi
sub eax, dword [ebp + 0x34]
cmp dword [ebp + 0x7c], 0
mov dword [ebp + 0x38], eax
je 0x445be9
movzx ecx, byte [esi]
cmp ecx, edx
jne 0x446b9a
cmp eax, 0x20
jg 0x44585e
and dword [ebp + 0x40], 0
jmp 0x445c57
and dword [ebp + 0x4c], 0
cmp dword [edi + 0x28], 0
mov esi, dword [edi + 0x24]
jle 0x445c1a
push dword [ebp + 0x38]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x34]
call fcn.0044acf0
add esp, 0xc
test eax, eax
je 0x445c1a
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x4c]
mov eax, dword [ebp + 0x4c]
cmp eax, dword [edi + 0x28]
jl 0x445bf6
mov eax, dword [ebp + 0x4c]
cmp eax, dword [edi + 0x28]
jge 0x445c2e
xor eax, eax
mov ah, byte [esi]
mov al, byte [esi + 1]
mov dword [ebp + 0x40], eax
jmp 0x445c57
mov eax, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x50]
shr eax, 3
and eax, 1
push eax
push dword [ebp + 0x38]
mov eax, dword [edi + 0x30]
push dword [ebp + 0x34]
call fcn.004444b7
add esp, 0xc
test eax, eax
mov dword [ebp + 0x40], eax
jle 0x446b5f
cmp dword [ebp + 0x3c], 0
je 0x445d67
mov eax, dword [edi + 0x14]
xor esi, esi
cmp dword [ebp + 0x7c], esi
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x44], eax
jne 0x445d0a
cmp dword [ebp + 0x40], esi
mov byte [ebx], 0
je 0x445c8e
push dword [ebp + 0x40]
mov eax, dword [edi + 0x14]
push esi
call fcn.004447ed
pop ecx
pop ecx
mov dword [ebp + 0x44], eax
cmp eax, esi
jne 0x445ce3
mov eax, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x50]
shr eax, 3
and eax, 1
push eax
push dword [ebp + 0x40]
mov eax, dword [edi + 0x30]
push esi
call fcn.004444b7
add esp, 0xc
test eax, eax
jl 0x446b5f
mov eax, dword [edi + 0x14]
mov ecx, dword [ebp + 0x40]
add ecx, eax
mov dword [ebp + 0x44], ecx
mov ecx, ebx
sub ecx, eax
mov eax, dword [edi + 0x20]
add ecx, 4
sar ecx, 8
mov byte [eax], cl
mov ecx, dword [edi + 0x20]
mov al, bl
sub al, byte [edi + 0x14]
add al, 4
mov byte [ecx + 1], al
add dword [edi + 0x20], 2
jmp 0x445d07
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
test ecx, ecx
jne 0x445d0a
mov eax, dword [ebp + 0x74]
push esi
push ebx
push dword [ebp + 0x44]
call fcn.004449fb
add esp, 0xc
test eax, eax
jne 0x446bf2
mov eax, dword [ebp + 0x44]
mov byte [ebx], 0x57
mov byte [ebx + 1], 0
mov byte [ebx + 2], 6
add ebx, 3
mov byte [ebx], 0x4c
mov ecx, eax
sub ecx, dword [edi + 0x14]
add ebx, 3
sar ecx, 8
mov byte [ebx - 2], cl
sub al, byte [edi + 0x14]
mov byte [ebx - 1], al
mov byte [ebx], 0x4f
mov byte [ebx + 1], 0
mov byte [ebx + 2], 6
add ebx, 3
cmp dword [ebp + 0x30], 0xfffffffe
mov dword [ebp - 4], 9
jne 0x4459f5
or dword [ebp + 0x30], 0xffffffff
jmp 0x4459f5
cmp ecx, 0x16
jl 0x445da5
mov edi, dword [ebp + 0x78]
push 0xffffffffffffffea
pop ecx
sub ecx, eax
mov dword [ebp + 0x40], ecx
cmp dword [ebp + 0x30], 0xfffffffe
jne 0x445d71
or dword [ebp + 0x30], 0xffffffff
mov ecx, dword [ebp + 0x40]
mov byte [ebx], 0x4b
mov dword [ebp + 0x4c], ebx
inc ebx
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov byte [ebx + 1], cl
inc ebx
xor eax, eax
inc ebx
inc eax
cmp ecx, 0x20
jge 0x445d91
shl eax, cl
or dword [edi + 0x38], eax
cmp ecx, dword [edi + 0x34]
jle 0x4459f5
mov dword [edi + 0x34], ecx
jmp 0x4459f5
cmp ecx, 0x10
je 0x446c00
cmp ecx, 0xd
je 0x446c00
cmp ecx, 0xe
je 0x446c00
cmp ecx, 4
jle 0x445dcf
cmp ecx, 0x11
jge 0x445dcf
mov dword [ebp + 0x4c], ebx
jmp 0x445dd3
and dword [ebp + 0x4c], 0
neg al
mov byte [ebx], al
inc ebx
jmp 0x4459f2
mov al, byte [esi + 1]
cmp al, 0x3a
mov dword [ebp + 0x4c], ebx
je 0x445def
cmp al, 0x2e
je 0x445def
cmp al, 0x3d
jne 0x445e05
lea eax, [ebp - 0x1c]
push eax
mov ecx, edi
mov eax, esi
call fcn.00444a2d
test eax, eax
pop ecx
jne 0x446c0b
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
movzx esi, byte [eax]
cmp esi, 0x5e
jne 0x445e25
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
movzx esi, byte [eax]
mov dword [ebp + 0x44], 1
jmp 0x445e29
and dword [ebp + 0x44], 0
and dword [ebp + 0x48], 0
or dword [ebp + 0x3c], 0xffffffff
push 8
xor eax, eax
test esi, esi
pop ecx
lea edi, [ebp - 0x44]
rep stosd dword es:[edi], eax
je 0x446c4e
cmp dword [ebp + 0x10], 0
mov edi, dword [ebp + 0x78]
je 0x445e6e
cmp esi, 0x5c
jne 0x446136
mov eax, dword [ebp + 0x50]
inc eax
cmp byte [eax], 0x45
jne 0x446136
and dword [ebp + 0x10], 0
mov dword [ebp + 0x50], eax
jmp 0x446305
cmp esi, 0x5b
jne 0x445f96
mov eax, dword [ebp + 0x50]
mov al, byte [eax + 1]
cmp al, 0x3a
je 0x445e8d
cmp al, 0x2e
je 0x445e8d
cmp al, 0x3d
jne 0x446136
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp + 0x50]
mov ecx, edi
call fcn.00444a2d
test eax, eax
pop ecx
je 0x446136
mov eax, dword [edi + 8]
and dword [ebp + 0x24], 0
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x3a
jne 0x446c25
inc eax
inc eax
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5e
jne 0x445ed0
inc eax
mov dword [ebp + 0x24], 1
mov dword [ebp + 0x50], eax
mov ecx, dword [ebp - 0x1c]
sub ecx, eax
push ecx
push eax
call fcn.00444a63
test eax, eax
pop ecx
pop ecx
jl 0x446c30
test byte [ebp + 0x28], 1
je 0x445ef3
cmp eax, 2
jg 0x445ef3
xor eax, eax
mov edx, dword [ebp + 0x18]
imul eax, eax, 3
shl eax, 2
mov esi, dword [eax + 0x45a120]
push 8
add esi, edx
pop ecx
lea edi, [ebp - 0x70]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 0x45a124]
mov edi, dword [eax + 0x45a128]
xor eax, eax
cmp ecx, eax
jl 0x445f44
xor esi, esi
add ecx, edx
cmp edi, eax
jl 0x445f35
mov dl, byte [ecx + esi]
or byte [ebp + esi - 0x70], dl
inc esi
cmp esi, 0x20
jl 0x445f26
jmp 0x445f44
mov dl, byte [ecx + esi]
not dl
and byte [ebp + esi - 0x70], dl
inc esi
cmp esi, 0x20
jl 0x445f35
cmp edi, eax
jge 0x445f4a
neg edi
cmp edi, 1
jne 0x445f55
and byte [ebp - 0x6f], 0xc3
jmp 0x445f5e
cmp edi, 2
jne 0x445f5e
and byte [ebp - 0x65], 0x7f
cmp dword [ebp + 0x24], eax
je 0x445f75
mov cl, byte [ebp + eax - 0x70]
not cl
or byte [ebp + eax - 0x44], cl
inc eax
cmp eax, 0x20
jl 0x445f63
jmp 0x445f83
mov cl, byte [ebp + eax - 0x70]
or byte [ebp + eax - 0x44], cl
inc eax
cmp eax, 0x20
jl 0x445f75
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x48], 0xa
jmp 0x446305
cmp esi, 0x5c
jne 0x446136
push 1
push dword [ebp + 0x28]
lea eax, [ebp + 0x50]
push dword [edi + 0x30]
push dword [ebp + 0x68]
push eax
call fcn.00444108
mov esi, eax
mov eax, dword [ebp + 0x68]
add esp, 0x14
cmp dword [eax], 0
jne 0x446c83
mov ecx, esi
neg ecx
cmp ecx, 4
jne 0x445fd5
push 8
pop esi
jmp 0x446136
cmp ecx, 0x10
jne 0x445fde
push 0x58
jmp 0x445fcf
cmp ecx, 0xf
jne 0x445fe7
push 0x52
jmp 0x445fcf
cmp ecx, 0x14
jne 0x44600d
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x5c
jne 0x446001
add eax, 2
cmp byte [eax], 0x45
je 0x445e66
mov dword [ebp + 0x10], 1
jmp 0x446305
test esi, esi
jge 0x446136
add dword [ebp + 0x48], 2
cmp dword [ebp + 0x7c], 0
mov eax, dword [edi + 8]
jne 0x4460ec
sub ecx, 5
je 0x4460d5
dec ecx
je 0x4460c0
dec ecx
je 0x44609d
dec ecx
je 0x44607c
dec ecx
je 0x446062
dec ecx
je 0x44604a
sub ecx, 9
jmp 0x44611c
xor esi, esi
mov cl, byte [eax + esi + 0xa0]
or byte [ebp + esi - 0x44], cl
inc esi
cmp esi, 0x20
jl 0x44604c
jmp 0x446305
xor esi, esi
mov cl, byte [eax + esi + 0xa0]
not cl
or byte [ebp + esi - 0x44], cl
inc esi
cmp esi, 0x20
jl 0x446064
jmp 0x446305
mov edi, eax
lea eax, [ebp - 0x44]
xor esi, esi
sub edi, eax
lea ecx, [ebp + esi - 0x44]
mov al, byte [ecx + edi]
or byte [ecx], al
inc esi
cmp esi, 0x20
jl 0x446085
and byte [ebp - 0x43], 0xf7
jmp 0x446305
mov edi, eax
lea eax, [ebp - 0x44]
xor esi, esi
sub edi, eax
lea ecx, [ebp + esi - 0x44]
mov al, byte [ecx + edi]
not al
or byte [ecx], al
inc esi
cmp esi, 0x20
jl 0x4460a6
or byte [ebp - 0x43], 8
jmp 0x446305
xor esi, esi
mov cl, byte [eax + esi + 0x40]
or byte [ebp + esi - 0x44], cl
inc esi
cmp esi, 0x20
jl 0x4460c2
jmp 0x446305
xor esi, esi
mov cl, byte [eax + esi + 0x40]
not cl
or byte [ebp + esi - 0x44], cl
inc esi
cmp esi, 0x20
jl 0x4460d7
jmp 0x446305
cmp esi, 0xfffffffa
je 0x446305
cmp esi, 0xfffffffb
je 0x446305
cmp esi, 0xfffffff6
je 0x446305
cmp esi, 0xfffffff7
je 0x446305
cmp esi, 0xfffffff8
je 0x446305
cmp esi, 0xfffffff9
je 0x446305
test byte [ebp + 0x28], 0x40
jne 0x446c3b
mov eax, dword [ebp + 0x50]
sub dword [ebp + 0x48], 2
movzx esi, byte [eax]
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x5c
jmp 0x446152
lea ecx, [eax + 2]
cmp byte [ecx], 0x45
jne 0x446157
and dword [ebp + 0x10], 0
mov dword [ebp + 0x50], ecx
cmp byte [ecx + 1], 0x5c
mov eax, dword [ebp + 0x50]
je 0x44613f
xor edi, edi
cmp dword [ebp + 0x10], edi
mov edx, eax
mov dword [ebp + 0x24], edx
jne 0x4462bb
cmp byte [eax + 1], 0x2d
jne 0x4462bb
push 2
pop ecx
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
jne 0x4461b9
cmp byte [eax + 1], 0x45
jne 0x4461ab
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
je 0x44617e
jmp 0x4461ab
cmp byte [eax + 1], 0x51
jne 0x4461b9
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
jne 0x4461b2
cmp byte [eax + 1], 0x45
jne 0x4461b2
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
je 0x446190
jmp 0x4461b9
mov dword [ebp + 0x10], 1
mov al, byte [eax]
test al, al
je 0x4462b8
cmp dword [ebp + 0x10], edi
jne 0x4461d0
cmp al, 0x5d
je 0x4462b8
cmp dword [ebp + 0x10], edi
movzx eax, al
mov dword [ebp + 0x18], eax
jne 0x446235
cmp eax, 0x5c
jne 0x446235
mov eax, dword [ebp + 0x78]
mov edi, dword [ebp + 0x68]
push 1
push dword [ebp + 0x28]
push dword [eax + 0x30]
lea eax, [ebp + 0x50]
push edi
push eax
call fcn.00444108
add esp, 0x14
cmp dword [edi], 0
mov dword [ebp + 0x18], eax
jne 0x446c83
test eax, eax
jge 0x446238
cmp eax, 0xfffffffc
jne 0x446214
push 8
jmp 0x446224
cmp eax, 0xfffffff0
jne 0x44621d
push 0x58
jmp 0x446224
cmp eax, 0xfffffff1
jne 0x44622a
push 0x52
pop eax
mov dword [ebp + 0x18], eax
jmp 0x446238
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0x50], eax
jmp 0x4462bb
mov edi, dword [ebp + 0x68]
cmp eax, esi
jl 0x446c46
je 0x4462bb
mov edx, dword [ebp + 0x48]
mov ecx, eax
sub ecx, esi
cmp dword [ebp + 0x7c], 0
lea ecx, [edx + ecx + 1]
mov dword [ebp + 0x48], ecx
mov dword [ebp + 0x3c], eax
jne 0x446305
cmp esi, eax
jg 0x446305
mov eax, dword [ebp + 0x28]
and eax, 1
mov dword [ebp + 0x24], eax
mov eax, esi
cdq
and edx, 7
add eax, edx
sar eax, 3
lea edi, [ebp + eax - 0x44]
mov ecx, esi
and ecx, 7
mov al, 1
shl al, cl
or byte [edi], al
cmp dword [ebp + 0x24], 0
je 0x4462b0
mov eax, dword [ebp + 0x78]
mov eax, dword [eax + 4]
movzx ecx, byte [eax + esi]
mov eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
lea edi, [ebp + eax - 0x44]
and ecx, 7
mov al, 1
shl al, cl
or byte [edi], al
inc esi
cmp esi, dword [ebp + 0x18]
jle 0x44626e
jmp 0x446305
mov dword [ebp + 0x50], edx
mov eax, esi
cdq
and edx, 7
add eax, edx
sar eax, 3
lea edi, [ebp + eax - 0x44]
mov ecx, esi
and ecx, 7
mov al, 1
shl al, cl
or byte [edi], al
test byte [ebp + 0x28], 1
je 0x4462ff
mov eax, dword [ebp + 0x78]
mov eax, dword [eax + 4]
movzx esi, byte [eax + esi]
mov eax, esi
cdq
and edx, 7
add eax, edx
sar eax, 3
lea edi, [ebp + eax - 0x44]
mov ecx, esi
and ecx, 7
mov al, 1
shl al, cl
or byte [edi], al
inc dword [ebp + 0x48]
mov dword [ebp + 0x3c], esi
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
movzx esi, byte [eax]
test esi, esi
je 0x446c4e
cmp esi, 0x5d
jne 0x445e43
cmp dword [ebp + 0x10], 0
jne 0x445e43
cmp dword [ebp + 0x48], 1
jne 0x4463aa
cmp dword [ebp + 0x44], 0
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x18], eax
je 0x446357
cmp dword [ebp + 0x30], 0xfffffffe
jne 0x446345
or dword [ebp + 0x30], 0xffffffff
mov eax, dword [ebp + 0x30]
mov dword [ebp + 0xc], eax
mov al, byte [ebp + 0x3c]
mov byte [ebx], 0x18
inc ebx
jmp 0x445dd5
mov al, byte [ebp + 0x3c]
mov edi, dword [ebp + 0x78]
mov cl, byte [ebp + 0x28]
and cl, 1
or cl, 0x16
mov byte [ebx], cl
mov ecx, dword [ebp + 0x30]
mov dword [ebp + 0x4c], ebx
inc ebx
mov byte [ebx], al
inc ebx
cmp ecx, 0xfffffffe
jne 0x44638f
or dword [ebp + 0xc], 0xffffffff
mov ecx, dword [ebp + 0x14]
movzx eax, al
or eax, dword [ebp - 0x10]
mov dword [ebp + 0x18], ecx
mov dword [ebp + 0x30], eax
jmp 0x4459f5
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x18], eax
movzx eax, byte [ebx - 1]
or eax, dword [edi + 0x40]
mov dword [ebp + 0xc], ecx
or eax, dword [ebp - 0x10]
mov dword [ebp + 0x14], eax
jmp 0x4459f5
cmp dword [ebp + 0x30], 0xfffffffe
jne 0x4463b4
or dword [ebp + 0x30], 0xffffffff
cmp dword [ebp + 0x44], 0
mov eax, dword [ebp + 0x30]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x18], eax
je 0x4463e7
mov byte [ebx], 0x49
inc ebx
cmp dword [ebp + 0x7c], 0
jne 0x4463f5
lea eax, [ebp - 0x44]
push 0x20
mov esi, ebx
sub eax, ebx
pop edi
mov cl, byte [eax + esi]
not cl
mov byte [esi], cl
inc esi
dec edi
jne 0x4463da
jmp 0x4463f5
mov byte [ebx], 0x48
inc ebx
push 8
pop ecx
lea esi, [ebp - 0x44]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
add ebx, 0x20
jmp 0x4459f2
and dword [ebp + 0x20], 0
mov dword [ebp + 0x2c], ecx
cmp dword [ebp + 0x4c], 0
je 0x446c59
mov eax, dword [ebp + 0x20]
test eax, eax
jne 0x446421
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 0x30], ecx
mov ecx, dword [ebp + 0x18]
mov dword [ebp + 0x14], ecx
sub eax, dword [ebp + 0x2c]
mov edx, dword [ebp + 0x4c]
mov ecx, dword [ebp + 0x50]
neg eax
sbb eax, eax
and dword [ebp + 0x3c], 0
and dword [ebp + 0x44], 0
and eax, 0x200
mov esi, edx
inc ecx
mov dword [ebp - 0x50], eax
mov dword [ebp + 0x1c], esi
mov al, byte [ecx]
cmp al, 0x2b
jne 0x446458
xor eax, eax
mov dword [ebp + 0x44], 1
mov dword [ebp + 0x50], ecx
jmp 0x446467
cmp al, 0x3f
jne 0x446464
mov eax, dword [ebp - 0x48]
mov dword [ebp + 0x50], ecx
jmp 0x446467
mov eax, dword [ebp - 0x4c]
mov cl, byte [edx]
cmp cl, 0x16
mov dword [ebp + 0x34], eax
je 0x4468aa
cmp cl, 0x17
je 0x4468aa
cmp cl, 0x18
jne 0x4464b9
cmp dword [ebp + 0x44], 0
movzx eax, byte [edx + 1]
mov dword [ebp + 0x3c], 0xd
mov dword [ebp + 0x40], eax
jne 0x4468f8
cmp dword [ebp + 0x2c], 0
jge 0x4468f8
push dword [ebp + 0x28]
mov eax, dword [ebp + 0x50]
inc eax
push eax
push 0
push dword [ebp + 0x40]
push 0x18
jmp 0x4468df
cmp cl, 0x11
jae 0x4464f3
cmp dword [ebp + 0x44], 0
movzx eax, cl
mov dword [ebp + 0x3c], 0x1a
mov dword [ebp + 0x40], eax
jne 0x4468f8
cmp dword [ebp + 0x2c], 0
jge 0x4468f8
push dword [ebp + 0x28]
mov eax, dword [ebp + 0x50]
inc eax
push eax
push 0
push 0
push dword [ebp + 0x40]
jmp 0x4468df
cmp cl, 0x48
je 0x446830
cmp cl, 0x49
je 0x446830
cmp cl, 0x4b
je 0x446830
cmp cl, 0x58
je 0x446526
cmp cl, 0x59
je 0x446526
cmp cl, 0x57
je 0x446526
cmp cl, 0x5a
jne 0x446c64
and dword [ebp + 0x38], 0
and dword [ebp + 0x40], 0
mov eax, ebx
sub eax, edx
cmp cl, 0x5a
mov dword [ebp + 0x48], eax
jne 0x446544
cmp byte [edx + 3], 0x60
je 0x446c6f
cmp eax, 0x7530
jg 0x446c7a
cmp dword [ebp + 0x2c], 0xffffffff
jne 0x44656d
mov eax, edx
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x4f
jne 0x446557
mov ecx, ebx
sub ecx, eax
mov dword [ebp + 0x38], ecx
cmp dword [ebp + 0x20], 0
jne 0x446601
cmp dword [ebp + 0x2c], 0
je 0x446836
cmp dword [ebp + 0x2c], 1
push dword [ebp + 4]
mov esi, dword [ebp + 0x4c]
mov edi, dword [ebp + 0x78]
mov byte [ebx], 0
push 0
jg 0x4465ba
push 1
push esi
call fcn.00444aa1
push dword [ebp + 0x48]
lea edi, [esi + 1]
push esi
push edi
call fcn.0044b6c0
mov al, byte [ebp + 0x34]
add esp, 0x1c
inc ebx
add al, 0x61
mov byte [esi], al
mov dword [ebp + 0x4c], edi
jmp 0x4465f0
push 4
push esi
call fcn.00444aa1
push dword [ebp + 0x48]
lea eax, [esi + 4]
push esi
push eax
call fcn.0044b6c0
mov al, byte [ebp + 0x34]
add al, 0x61
mov byte [esi], al
add esp, 0x1c
add ebx, 4
inc esi
mov byte [esi], 0x58
inc esi
mov dword [ebp + 0x40], esi
mov byte [esi], 0
mov byte [esi + 1], 0
inc esi
inc esi
mov dword [ebp + 0x4c], esi
dec dword [ebp + 0x2c]
mov esi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x2c]
mov edi, dword [ebp + 0x78]
jmp 0x44669e
cmp dword [ebp + 0x20], 1
jle 0x446691
mov eax, dword [ebp + 0x7c]
test eax, eax
je 0x44661e
mov ecx, dword [ebp + 0x20]
dec ecx
imul ecx, dword [ebp - 4]
add dword [eax], ecx
jmp 0x446691
cmp dword [ebp - 0x20], 0
je 0x446630
cmp dword [ebp + 0x14], 0
jge 0x446630
mov eax, dword [ebp + 0x30]
mov dword [ebp + 0x14], eax
cmp dword [ebp + 0x20], 1
jle 0x446691
mov eax, dword [ebp + 0x20]
mov esi, dword [ebp + 4]
dec eax
mov dword [ebp + 0x24], eax
push dword [ebp + 0x48]
mov eax, dword [edi + 0x20]
push dword [ebp + 0x4c]
mov dword [ebp + 0x3c], eax
push ebx
call fcn.0044ae10
add esp, 0xc
jmp 0x44667b
mov ecx, dword [edi + 0x20]
xor eax, eax
mov ah, byte [esi]
mov al, byte [esi + 1]
add eax, dword [ebp + 0x48]
sar eax, 8
mov byte [ecx], al
mov al, byte [esi + 1]
add al, byte [ebp + 0x48]
mov ecx, dword [edi + 0x20]
mov byte [ecx + 1], al
add dword [edi + 0x20], 2
inc esi
inc esi
cmp esi, dword [ebp + 0x3c]
jb 0x446657
mov esi, dword [ebp + 0x3c]
add ebx, dword [ebp + 0x48]
dec dword [ebp + 0x24]
mov dword [ebp + 4], esi
jne 0x446640
mov esi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x2c]
test eax, eax
jle 0x4466a0
sub eax, dword [ebp + 0x20]
mov dword [ebp + 0x2c], eax
test eax, eax
jl 0x4467c5
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x4466c4
test eax, eax
jle 0x4466c4
mov edx, dword [ebp - 4]
add edx, 7
imul edx, eax
sub edx, 6
add dword [ecx], edx
jmp 0x44677d
dec eax
mov dword [ebp + 0x38], eax
js 0x44677d
mov al, byte [ebp + 0x34]
add al, 0x61
mov byte [ebp + 2], al
mov esi, dword [edi + 0x20]
mov al, byte [ebp + 2]
mov byte [ebx], al
inc ebx
cmp dword [ebp + 0x38], 0
mov dword [ebp + 0x24], esi
je 0x446708
mov eax, dword [ebp + 0x40]
mov byte [ebx], 0x58
inc ebx
mov ecx, ebx
sub ecx, eax
neg eax
sbb eax, eax
and eax, ecx
mov ecx, eax
sar ecx, 8
mov dword [ebp + 0x40], ebx
mov byte [ebx], cl
mov byte [ebx + 1], al
inc ebx
inc ebx
push dword [ebp + 0x48]
push dword [ebp + 0x4c]
push ebx
call fcn.0044ae10
mov eax, dword [ebp + 4]
add esp, 0xc
cmp eax, esi
jae 0x44676b
mov esi, dword [ebp + 0x38]
neg esi
sbb esi, esi
and esi, 3
inc esi
cmp dword [ebp + 0x38], 0
sete cl
dec cl
and cl, 3
inc cl
mov byte [ebp + 3], cl
mov edx, dword [edi + 0x20]
xor ecx, ecx
mov ch, byte [eax]
mov cl, byte [eax + 1]
add ecx, dword [ebp + 0x48]
add ecx, esi
sar ecx, 8
mov byte [edx], cl
mov cl, byte [eax + 1]
add cl, byte [ebp + 0x48]
mov edx, dword [edi + 0x20]
add cl, byte [ebp + 3]
mov byte [edx + 1], cl
add dword [edi + 0x20], 2
inc eax
inc eax
cmp eax, dword [ebp + 0x24]
jb 0x44673a
mov esi, dword [ebp + 0x24]
add ebx, dword [ebp + 0x48]
dec dword [ebp + 0x38]
mov dword [ebp + 4], esi
jns 0x4466d6
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x40], 0
je 0x446a2f
mov esi, dword [ebp + 0x40]
xor edx, edx
mov ecx, ebx
sub ecx, esi
inc ecx
mov eax, ebx
sub eax, ecx
mov dh, byte [eax + 1]
mov dl, byte [eax + 2]
mov byte [ebx], 0x4f
mov byte [ebx + 2], cl
sub esi, edx
mov dword [ebp + 0x24], edx
neg edx
sbb edx, edx
and esi, edx
inc ebx
mov edx, ecx
sar edx, 8
mov byte [ebx], dl
inc ebx
inc ebx
test esi, esi
mov byte [eax + 1], dl
mov byte [eax + 2], cl
jne 0x44678a
jmp 0x446a2c
mov esi, ebx
sub esi, dword [ebp + 0x38]
xor ecx, ecx
mov ch, byte [esi + 1]
mov eax, esi
mov cl, byte [esi + 2]
sub eax, ecx
mov dword [ebp + 0x48], eax
mov al, byte [ebp + 0x34]
add al, 0x50
cmp dword [ebp + 0x7c], 0
mov byte [esi], al
jne 0x446a2c
mov eax, dword [ebp + 0x48]
cmp byte [eax], 0x57
je 0x446a2c
mov dword [ebp + 0x3c], eax
push 0
push esi
push dword [ebp + 0x3c]
call fcn.004448b6
add esp, 0xc
test eax, eax
jne 0x446825
mov eax, dword [ebp + 0x3c]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x4e
mov dword [ebp + 0x3c], eax
je 0x4467f9
jmp 0x446a2c
mov eax, dword [ebp + 0x48]
add byte [eax], 3
jmp 0x446a2c
cmp dword [ebp + 0x2c], 0
jne 0x44683d
mov ebx, edx
jmp 0x446b1f
mov ecx, dword [ebp + 0x2c]
xor esi, esi
inc esi
cmp ecx, esi
je 0x44684a
mov dword [edi + 0x44], esi
cmp dword [ebp + 0x20], 0
jne 0x44685c
cmp ecx, 0xffffffff
jne 0x44686e
add al, 0x40
jmp 0x446a29
cmp dword [ebp + 0x20], 1
jne 0x446879
cmp ecx, 0xffffffff
jne 0x446879
add al, 0x42
jmp 0x446a29
cmp ecx, esi
jne 0x446879
add al, 0x44
jmp 0x446a29
add al, 0x46
mov byte [ebx], al
mov eax, dword [ebp + 0x20]
inc ebx
mov edx, eax
sar edx, 8
mov byte [ebx], dl
mov byte [ebx + 1], al
inc ebx
inc ebx
cmp ecx, 0xffffffff
jne 0x446899
and dword [ebp + 0x2c], 0
mov ecx, dword [ebp + 0x2c]
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov byte [ebx + 1], cl
inc ebx
inc ebx
jmp 0x446a2c
cmp dword [ebp + 0x20], 1
movzx esi, byte [ebx - 1]
mov dword [ebp + 0x40], esi
jle 0x4468c2
mov eax, dword [edi + 0x40]
or eax, esi
or eax, dword [ebp - 0x10]
mov dword [ebp + 0x14], eax
cmp dword [ebp + 0x44], 0
jne 0x4468f8
cmp dword [ebp + 0x2c], 0
jge 0x4468f8
push dword [ebp + 0x28]
mov eax, dword [ebp + 0x50]
inc eax
push eax
push 0
push dword [ebp + 0x40]
movzx eax, cl
push eax
mov esi, edi
call fcn.00444b67
add esp, 0x14
test eax, eax
je 0x4468f8
and dword [ebp + 0x34], 0
mov dword [ebp + 0x44], 1
mov eax, dword [ebp + 0x4c]
mov cl, byte [eax]
cmp cl, 0xe
je 0x446911
cmp cl, 0xd
je 0x446911
or dword [ebp + 0x38], 0xffffffff
or dword [ebp + 0x48], 0xffffffff
jmp 0x44691f
movzx ecx, byte [eax + 1]
mov dword [ebp + 0x48], ecx
movzx ecx, byte [eax + 2]
mov dword [ebp + 0x38], ecx
cmp dword [ebp + 0x2c], 0
mov esi, ebx
mov ebx, eax
je 0x446b1f
mov edx, dword [ebp + 0x2c]
xor eax, eax
inc eax
cmp edx, eax
je 0x44693a
mov dword [edi + 0x44], eax
mov eax, dword [ebp + 0x34]
mov ecx, dword [ebp + 0x3c]
add eax, ecx
cmp dword [ebp + 0x20], 0
mov dword [ebp + 0x34], eax
jne 0x44696f
cmp edx, 0xffffffff
mov ebx, dword [ebp + 0x4c]
je 0x4469de
cmp edx, 1
je 0x446a0e
add al, 0x1f
mov byte [ebx], al
inc ebx
mov eax, edx
mov byte [ebx + 1], dl
jmp 0x446a1f
cmp dword [ebp + 0x20], 1
jne 0x4469ab
cmp edx, 0xffffffff
jne 0x446984
mov ebx, dword [ebp + 0x4c]
add al, 0x1b
jmp 0x446a10
cmp edx, 1
mov ebx, esi
je 0x446b1f
mov al, byte [ebp + 0x34]
add al, 0x1f
mov byte [esi], al
mov eax, dword [ebp + 0x2c]
lea ecx, [eax - 1]
sar ecx, 8
lea ebx, [esi + 1]
dec al
mov byte [ebx], cl
mov byte [ebx + 1], al
jmp 0x446a24
mov ebx, dword [ebp + 0x4c]
add cl, 0x21
mov byte [ebx], cl
mov ecx, dword [ebp + 0x20]
inc ebx
sar ecx, 8
mov byte [ebx], cl
mov cl, byte [ebp + 0x20]
mov byte [ebx + 1], cl
inc ebx
inc ebx
test edx, edx
jge 0x4469e2
mov cl, byte [ebp + 0x40]
mov byte [ebx], cl
mov ecx, dword [ebp + 0x48]
inc ebx
test ecx, ecx
jl 0x4469de
mov byte [ebx], cl
mov cl, byte [ebp + 0x38]
inc ebx
mov byte [ebx], cl
inc ebx
add al, 0x19
jmp 0x446a10
mov ecx, dword [ebp + 0x20]
cmp dword [ebp + 0x2c], ecx
je 0x446a26
mov cl, byte [ebp + 0x40]
mov byte [ebx], cl
mov ecx, dword [ebp + 0x48]
inc ebx
test ecx, ecx
jl 0x446a00
mov byte [ebx], cl
mov cl, byte [ebp + 0x38]
inc ebx
mov byte [ebx], cl
inc ebx
mov ecx, dword [ebp + 0x2c]
sub ecx, dword [ebp + 0x20]
cmp ecx, 1
mov dword [ebp + 0x2c], ecx
jne 0x446a15
add al, 0x1d
mov byte [ebx], al
inc ebx
jmp 0x446a26
add al, 0x1f
mov byte [ebx], al
inc ebx
mov eax, ecx
mov byte [ebx + 1], cl
sar eax, 8
mov byte [ebx], al
inc ebx
inc ebx
mov al, byte [ebp + 0x40]
mov byte [ebx], al
inc ebx
mov esi, dword [ebp + 0x1c]
cmp dword [ebp + 0x44], 0
je 0x446b1f
mov al, byte [esi]
cmp al, 0x21
je 0x446a47
cmp al, 0x3b
je 0x446a47
cmp al, 0x2e
jne 0x446a56
movzx eax, al
movzx eax, byte [eax + 0x45a608]
add esi, eax
mov dword [ebp + 0x1c], esi
mov eax, ebx
sub eax, esi
test eax, eax
mov dword [ebp + 0x24], eax
jle 0x446b1f
movzx eax, byte [esi]
cmp eax, 0x2a
jg 0x446ab5
je 0x446ab0
sub eax, 0x19
je 0x446aab
push 2
pop ecx
sub eax, ecx
je 0x446aa6
sub eax, ecx
je 0x446aa1
sub eax, ecx
je 0x446a9c
sub eax, 7
je 0x446a94
sub eax, ecx
jne 0x446acb
mov byte [esi], 0x30
jmp 0x446b1f
mov byte [esi], 0x2f
jmp 0x446b1f
mov byte [esi], 0x25
jmp 0x446b1f
mov byte [esi], 0x24
jmp 0x446b1f
mov byte [esi], 0x23
jmp 0x446b1f
mov byte [esi], 0x22
jmp 0x446b1f
mov byte [esi], 0x31
jmp 0x446b1f
sub eax, 0x2c
je 0x446b1c
sub eax, 7
je 0x446b17
dec eax
dec eax
je 0x446b12
dec eax
dec eax
je 0x446b0d
dec eax
dec eax
je 0x446b08
push dword [ebp + 0x24]
push esi
add esi, 3
push esi
call fcn.0044b6c0
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x24]
mov byte [eax], 0x57
add ecx, 3
add ebx, 3
mov byte [ebx], 0x4f
add esp, 0xc
inc ebx
mov byte [ebx + 1], cl
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov edx, dword [ebp + 0x1c]
mov byte [edx + 1], al
mov eax, dword [ebp + 0x1c]
inc ebx
inc ebx
mov byte [eax + 2], cl
jmp 0x446b1f
mov byte [esi], 0x3f
jmp 0x446b1f
mov byte [esi], 0x3e
jmp 0x446b1f
mov byte [esi], 0x3d
jmp 0x446b1f
mov byte [esi], 0x3c
jmp 0x446b1f
mov byte [esi], 0x32
mov eax, dword [ebp - 0x50]
and dword [ebp + 0x4c], 0
or dword [edi + 0x40], eax
jmp 0x4459f5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x34
jmp 0x446c83
mov eax, dword [ebp + 0x68]
inc dword [ebp + 0x50]
mov dword [eax], 0x1c
jmp 0x446c83
mov eax, dword [ebp + 0x68]
dec ecx
mov dword [ebp + 0x50], ecx
mov dword [eax], 0x1a
jmp 0x446c83
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xf
jmp 0x446c83
mov eax, dword [ebp + 0x68]
dec dword [ebp + 0x50]
mov dword [eax], 0xc
jmp 0x446c83
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x27
jmp 0x446c83
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x26
jmp 0x446c83
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2a
jmp 0x446c83
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x31
jmp 0x446c83
mov eax, dword [ebp + 0x68]
inc esi
mov dword [ebp + 0x50], esi
mov dword [eax], 0x18
jmp 0x446c83
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x36
jmp 0x446c83
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1b
jmp 0x446c83
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xe
jmp 0x446c83
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x28
jmp 0x446c83
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2d
jmp 0x446c83
mov ecx, dword [ebp + 0x50]
xor eax, eax
cmp byte [ecx + 1], 0x3a
setne al
dec eax
and eax, 0xffffffee
add eax, 0x1f
mov ecx, dword [ebp + 0x68]
mov dword [ecx], eax
jmp 0x446c83
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1f
jmp 0x446c83
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1e
jmp 0x446c83
mov eax, dword [ebp + 0x68]
mov dword [eax], 7
jmp 0x446c83
mov dword [edi], 8
jmp 0x446c83
mov eax, dword [ebp + 0x68]
mov dword [eax], 6
jmp 0x446c83
mov eax, dword [ebp + 0x68]
mov dword [eax], 9
jmp 0x446c83
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xb
jmp 0x446c83
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x37
jmp 0x446c83
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x32
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x64]
mov dword [ecx], eax
xor eax, eax
pop edi
pop esi
pop ebx
add ebp, 0x54
leave
ret