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

Disassembly:
push ebp
lea ebp, [esp - 0x54]
sub esp, 0xdc
push ebx
push esi
push edi
mov edi, dword [ebp + 0x78]
mov ecx, dword [ebp + 0x5c]
mov edx, dword [ecx]
mov ecx, dword [ebp + 0x60]
xor eax, eax
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0xc], eax
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x28], eax
mov dword [ebp + 0x48], eax
mov dword [ebp], eax
mov dword [ebp - 4], eax
mov ebx, dword [ecx]
mov ecx, dword [ebp + 0x64]
mov esi, dword [ecx]
xor ecx, ecx
inc ecx
mov eax, edx
shr eax, 0xb
and eax, ecx
mov dword [ebp + 0x1c], eax
mov eax, edx
shr eax, 9
and eax, ecx
mov dword [ebp - 0x60], eax
xor eax, ecx
mov dword [ebp - 0x64], eax
push 0xfffffffffffffffe
pop eax
mov dword [ebp + 8], eax
mov dword [ebp + 4], eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x2c], eax
mov eax, edx
and eax, ecx
shl eax, 8
mov dword [ebp + 0x30], edx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp + 0x50], esi
mov dword [ebp - 0x14], eax
movzx eax, byte [esi]
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
mov dword [ebp + 0x4c], eax
je 0x444255
mov eax, dword [edi + 0x10]
add eax, 0x1000
cmp ebx, eax
ja 0x446124
cmp ebx, dword [ebp - 0x18]
jae 0x444210
mov ebx, dword [ebp - 0x18]
mov eax, ebx
sub eax, dword [ebp - 0x18]
add dword [ecx], eax
mov eax, dword [ebp + 0x48]
test eax, eax
je 0x444247
cmp eax, dword [ebp - 0x2c]
jbe 0x44424a
mov esi, dword [ebp - 0x2c]
mov eax, ebx
sub eax, dword [ebp + 0x48]
push eax
push dword [ebp + 0x48]
push esi
call fcn.0044ef20
mov eax, esi
sub eax, dword [ebp + 0x48]
add esp, 0xc
mov dword [ebp + 0x48], esi
mov esi, dword [ebp + 0x50]
add ebx, eax
jmp 0x44424a
mov ebx, dword [ebp - 0x2c]
mov ecx, dword [ebp + 0x7c]
mov eax, dword [ebp + 0x4c]
mov dword [ebp - 0x18], ebx
jmp 0x444267
mov edx, dword [edi + 0x10]
add edx, 0x1000
cmp dword [edi + 0x20], edx
ja 0x446124
xor edx, edx
cmp dword [ebp + 0xc], edx
je 0x4442c7
cmp eax, edx
je 0x4442c7
cmp eax, 0x5c
jne 0x44428a
lea eax, [esi + 1]
cmp byte [eax], 0x45
jne 0x44428a
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x50], eax
jmp 0x444c5c
cmp dword [ebp], edx
je 0x4442a5
cmp ecx, edx
jne 0x4442a1
mov ecx, dword [ebp]
push edi
mov eax, esi
call fcn.00443c21
add esp, 4
and dword [ebp], 0
test word [ebp + 0x30], 0x4000
je 0x444cfd
mov ecx, dword [ebp + 0x50]
mov esi, edi
mov eax, ebx
mov dword [ebp], ebx
call fcn.00443bfd
mov ebx, eax
jmp 0x444cfd
cmp eax, 0x2a
je 0x444339
cmp eax, 0x2b
je 0x444339
cmp eax, 0x3f
je 0x444339
cmp eax, 0x7b
jne 0x4442e7
lea eax, [esi + 1]
call fcn.00443407
test eax, eax
jne 0x444339
and dword [ebp + 0x40], 0
cmp dword [ebp], 0
je 0x444316
mov eax, dword [ebp - 0x24]
dec dword [ebp - 0x24]
test eax, eax
jg 0x444316
cmp dword [ebp + 0x7c], 0
jne 0x444312
mov ecx, dword [ebp]
push edi
mov eax, esi
call fcn.00443c21
mov esi, dword [ebp + 0x50]
add esp, 4
and dword [ebp], 0
test byte [ebp + 0x30], 8
je 0x44438c
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp + 0x4c]
test byte [ecx + eax], 1
jne 0x444c5c
cmp ecx, 0x23
mov esi, dword [ebp + 0x50]
jne 0x44438c
jmp 0x44441a
mov dword [ebp + 0x40], 1
jmp 0x444316
mov ecx, dword [edi + 0x48]
test ecx, ecx
je 0x4443f4
mov eax, dword [edi + 0x1c]
cmp esi, eax
jae 0x44441a
push dword [ebp + 0x1c]
lea edx, [edi + 0x4c]
push edx
push eax
push ecx
push esi
call fcn.0044ae84
mov esi, dword [ebp + 0x50]
add esp, 0x14
test eax, eax
je 0x44441a
mov eax, dword [edi + 0x4c]
lea esi, [esi + eax - 1]
mov dword [ebp + 0x50], esi
cmp byte [esi], 0
jne 0x444c5c
and dword [ebp + 0x4c], 0
xor ecx, ecx
inc ecx
test word [ebp + 0x30], 0x4000
je 0x4443b4
cmp dword [ebp + 0x40], 0
jne 0x4443b4
mov ecx, dword [ebp + 0x50]
mov esi, edi
mov eax, ebx
mov dword [ebp], ebx
call fcn.00443bfd
mov esi, dword [ebp + 0x50]
xor ecx, ecx
mov ebx, eax
inc ecx
mov eax, dword [ebp + 0x4c]
cmp eax, 0x2e
jg 0x444ca1
je 0x444c80
xor edx, edx
sub eax, edx
je 0x444cca
sub eax, 0x24
je 0x444c75
sub eax, 4
je 0x444439
dec eax
je 0x444cca
dec eax
je 0x44442d
dec eax
jne 0x444cfd
mov dword [ebp + 0x20], ecx
jmp 0x444430
mov ecx, dword [edi + 0x4c]
mov edx, dword [edi + 0x1c]
sub edx, ecx
cmp esi, edx
ja 0x44441a
cmp al, byte [edi + 0x50]
jne 0x44441a
cmp ecx, 1
je 0x444375
mov al, byte [esi + 1]
cmp al, byte [edi + 0x51]
je 0x444375
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
jne 0x444342
jmp 0x444388
mov dword [ebp + 0x20], edx
or dword [ebp + 0x28], 0xffffffff
jmp 0x445921
mov eax, dword [ebp + 0x30]
inc esi
mov dword [ebp + 0x40], edx
mov edx, dword [edi + 0x20]
mov dword [ebp + 0x50], esi
cmp byte [esi], 0x3f
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x44], 0x59
mov dword [ebp - 4], edx
jne 0x444bd5
inc esi
mov dword [ebp + 0x50], esi
mov dl, byte [esi]
movzx eax, dl
cmp eax, 0x3a
jg 0x4447ec
je 0x4447dc
cmp eax, 0x21
je 0x4446f8
cmp eax, 0x23
je 0x4446c9
cmp eax, 0x26
je 0x4446be
cmp eax, 0x27
je 0x444a52
cmp eax, 0x28
je 0x4444b4
cmp eax, 0x2f
jle 0x44481d
cmp eax, 0x39
jle 0x444938
jmp 0x44481d
cmp byte [esi + 1], 0x3f
mov dword [ebp + 0x44], 0x5a
jne 0x4444dc
mov al, byte [esi + 2]
cmp al, 0x3d
je 0x444bb6
cmp al, 0x21
je 0x444bb6
cmp al, 0x3c
je 0x444bb6
mov byte [ebx + 3], 0x5e
mov edx, dword [ebp + 0x50]
lea eax, [edx + 1]
mov cl, byte [eax]
cmp cl, 0x52
mov dword [ebp + 0x40], 3
jne 0x444509
add edx, 2
cmp byte [edx], 0x26
jne 0x444509
or dword [ebp + 0x3c], 0xffffffff
mov dword [ebp + 0x50], edx
mov byte [ebx + 3], 0x5f
jmp 0x44452c
cmp cl, 0x3c
jne 0x444517
mov dword [ebp + 0x3c], 0x3e
jmp 0x444523
cmp cl, 0x27
jne 0x444528
mov dword [ebp + 0x3c], 0x27
mov dword [ebp + 0x50], eax
jmp 0x44452c
and dword [ebp + 0x3c], 0
mov eax, dword [ebp + 0x50]
mov edx, dword [edi + 0xc]
inc eax
movzx ecx, byte [eax]
test byte [ecx + edx], 0x10
je 0x446132
and dword [ebp + 0x4c], 0
mov ecx, eax
mov dword [ebp + 0x50], ecx
movzx eax, byte [ecx]
test byte [edx + eax], 0x10
mov dword [ebp + 0x34], ecx
je 0x444584
cmp dword [ebp + 0x4c], 0
jl 0x444577
test byte [eax + 0x464248], 4
je 0x444573
mov esi, dword [ebp + 0x4c]
imul esi, esi, 0xa
lea eax, [esi + eax - 0x30]
mov dword [ebp + 0x4c], eax
jmp 0x444577
or dword [ebp + 0x4c], 0xffffffff
inc ecx
mov dword [ebp + 0x50], ecx
movzx eax, byte [ecx]
test byte [edx + eax], 0x10
jne 0x444555
mov eax, ecx
sub eax, dword [ebp + 0x34]
cmp dword [ebp + 0x3c], 0
mov dword [ebp + 0x38], eax
jle 0x4445a2
movzx eax, byte [ecx]
inc ecx
cmp eax, dword [ebp + 0x3c]
mov dword [ebp + 0x50], ecx
jne 0x446143
mov al, byte [ecx]
inc ecx
cmp al, 0x29
mov dword [ebp + 0x50], ecx
jne 0x446143
cmp dword [ebp + 0x7c], 0
jne 0x444bb6
and dword [ebp + 0x48], 0
cmp dword [edi + 0x28], 0
mov esi, dword [edi + 0x24]
jle 0x4445ee
push dword [ebp + 0x38]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x34]
call fcn.0044e438
add esp, 0xc
test eax, eax
je 0x4445eb
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [edi + 0x28]
jl 0x4445c7
mov ecx, dword [ebp + 0x50]
mov eax, dword [ebp + 0x48]
cmp eax, dword [edi + 0x28]
jge 0x44460d
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 0x444bb6
mov eax, dword [ebp + 0x30]
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.004434fe
add esp, 0xc
test eax, eax
jg 0x4445fd
xor ecx, ecx
cmp dword [ebp + 0x3c], ecx
jne 0x446155
mov edx, dword [ebp + 0x34]
cmp byte [edx], 0x52
jne 0x44467e
cmp dword [ebp + 0x38], esi
jle 0x444668
movzx eax, byte [esi + edx]
test byte [eax + 0x464248], 4
je 0x446155
imul ecx, ecx, 0xa
inc esi
cmp esi, dword [ebp + 0x38]
lea ecx, [ecx + eax - 0x30]
jl 0x444646
test ecx, ecx
jne 0x44466d
mov ecx, 0xffff
mov eax, ecx
mov byte [ebx + 3], 0x5f
sar eax, 8
mov byte [ebx + 5], cl
jmp 0x444bb3
cmp dword [ebp + 0x38], 6
jne 0x4446a4
push 6
push str.DEFINE
push edx
call fcn.0044e438
add esp, 0xc
test eax, eax
jne 0x4446a4
mov byte [ebx + 3], 0x60
mov dword [ebp + 0x40], esi
jmp 0x444bb6
mov eax, dword [ebp + 0x4c]
test eax, eax
jg 0x4445fd
neg eax
sbb eax, eax
and eax, 0xffffffec
add eax, 0x23
jmp 0x446214
push 0x29
pop edx
mov dword [ebp + 0x40], ecx
jmp 0x444e3e
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
je 0x4446ea
cmp al, 0x29
je 0x4446e1
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
jne 0x4446d3
cmp byte [esi], 0
jne 0x444c5c
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x12
jmp 0x44627b
mov dword [ebp + 0x44], 0x53
inc esi
and dword [ebp + 0x48], 0
mov dword [ebp + 0x50], esi
mov ecx, dword [ebp + 0x44]
mov byte [ebx], cl
mov eax, dword [edi + 0x40]
mov dword [ebp + 0x3c], eax
xor eax, eax
cmp ecx, 0x54
mov dword [ebp + 0x18], ebx
mov dword [ebp - 0xc], eax
je 0x444724
cmp ecx, 0x55
jne 0x444727
xor eax, eax
inc eax
mov ecx, dword [ebp + 0x7c]
neg ecx
sbb ecx, ecx
lea edx, [ebp - 0xc]
and ecx, edx
push ecx
push edi
push dword [ebp + 0x74]
lea ecx, [ebp - 0x10]
push ecx
lea ecx, [ebp - 0x20]
push ecx
push dword [ebp + 0x40]
push eax
push dword [ebp + 0x68]
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x18]
push eax
mov eax, dword [ebp + 0x30]
and eax, 7
push eax
push dword [ebp + 0x24]
call fcn.0044628d
add esp, 0x30
test eax, eax
je 0x44627b
mov esi, dword [ebp + 0x44]
cmp esi, 0x5a
jne 0x44479b
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 0x444775
cmp byte [ebx + 3], 0x60
jne 0x444be4
cmp edi, 1
jg 0x4461be
push 0x60
pop esi
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp + 0x50]
cmp byte [eax], 0x29
jne 0x4461da
mov eax, dword [ebp + 0x7c]
xor edx, edx
cmp eax, edx
je 0x444c04
mov ecx, dword [ebp - 0xc]
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 - 0x20]
inc ebx
inc ebx
jmp 0x444c07
mov dword [ebp + 0x44], 0x58
inc esi
mov dword [ebp + 0x50], esi
jmp 0x444bb6
sub eax, 0x3c
je 0x444a2f
dec eax
je 0x444a23
dec eax
je 0x444a17
sub eax, 5
je 0x4449ac
sub eax, 0xd
je 0x444972
dec eax
dec eax
je 0x444934
xor eax, eax
xor esi, esi
cmp dl, 0x29
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x3c], esi
lea ecx, [ebp + 0x3c]
je 0x4448b3
cmp dl, 0x3a
je 0x4448ad
inc dword [ebp + 0x50]
movzx eax, dl
cmp eax, 0x69
jg 0x444883
je 0x44487e
cmp eax, 0x2d
je 0x444879
cmp eax, 0x4a
je 0x44486a
cmp eax, 0x55
je 0x444862
cmp eax, 0x58
jne 0x446163
or dword [ecx], 0x40
jmp 0x4448a3
or dword [ecx], 0x200
jmp 0x4448a3
or dword [ecx], 0x80000
or dword [edi + 0x3c], 0x8000000
jmp 0x4448a3
lea ecx, [ebp + 0x44]
jmp 0x4448a3
or dword [ecx], 1
jmp 0x4448a3
cmp eax, 0x6d
je 0x4448a0
cmp eax, 0x73
je 0x44489b
cmp eax, 0x78
jne 0x446163
or dword [ecx], 8
jmp 0x4448a3
or dword [ecx], 4
jmp 0x4448a3
or dword [ecx], 2
mov eax, dword [ebp + 0x50]
mov dl, byte [eax]
cmp dl, 0x29
jne 0x444833
mov esi, dword [ebp + 0x3c]
mov eax, dword [ebp + 0x44]
or esi, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x50]
not eax
and esi, eax
cmp byte [ecx], 0x29
mov eax, esi
mov dword [ebp + 0x24], eax
jne 0x444925
mov ecx, dword [edi + 0x14]
add ecx, 3
cmp ebx, ecx
jne 0x4448e8
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x4448dd
cmp dword [ecx], 6
jne 0x4448e8
mov dword [edi + 0x3c], eax
mov dword [ebp + 0x30], eax
jmp 0x444a0e
mov ecx, eax
xor ecx, dword [ebp + 0x30]
test cl, 7
je 0x4448fe
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 + 0x30], eax
mov dword [ebp - 0x60], ecx
xor ecx, 1
and eax, 1
shl eax, 8
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x14], eax
jmp 0x444a0e
inc dword [ebp + 0x50]
mov dword [ebp + 0x44], 0x58
jmp 0x444bb6
inc esi
mov dword [ebp + 0x50], esi
and dword [ebp + 0x4c], 0
jmp 0x44494f
mov ecx, dword [ebp + 0x4c]
imul ecx, ecx, 0xa
lea eax, [ecx + eax - 0x30]
inc esi
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + 0x464248], 4
jne 0x44493e
cmp byte [esi], 0x29
je 0x444f0d
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1d
jmp 0x44627b
inc esi
mov dword [ebp + 0x50], esi
mov dl, byte [esi]
cmp dl, 0x3d
je 0x444999
cmp dl, 0x3e
je 0x444999
cmp dl, 0x3c
je 0x444a52
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x29
jmp 0x44627b
xor eax, eax
cmp dl, 0x3e
sete al
push 0x29
pop edx
mov dword [ebp + 0x40], eax
jmp 0x444e3e
mov byte [ebx], 0x4d
mov esi, dword [ebp + 0x50]
mov dword [ebp], ebx
inc ebx
mov dword [ebp - 0x24], ecx
xor edx, edx
jmp 0x4449c4
imul edx, edx, 0xa
lea edx, [edx + eax - 0x30]
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + 0x464248], 4
jne 0x4449bd
cmp byte [esi], 0x29
jne 0x446174
cmp edx, 0xff
jg 0x446182
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 + 0x48], 0
jmp 0x444c5c
mov dword [ebp + 0x44], 0x57
jmp 0x4447e3
mov dword [ebp + 0x44], 0x52
jmp 0x4446ff
mov al, byte [esi + 1]
cmp al, 0x21
je 0x444bcc
cmp al, 0x3d
je 0x444bbe
mov ecx, dword [edi + 0xc]
movzx eax, al
test byte [eax + ecx], 0x10
je 0x4461ac
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 + 0x3c], eax
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
mov dword [ebp + 0x34], esi
je 0x444a86
mov eax, ecx
inc esi
mov dword [ebp + 0x50], esi
movzx ecx, byte [esi]
test byte [ecx + eax], 0x10
jne 0x444a79
mov eax, esi
sub eax, dword [ebp + 0x34]
cmp dword [ebp + 0x7c], 0
mov dword [ebp + 0x38], eax
je 0x444ad3
movzx ecx, byte [esi]
cmp ecx, dword [ebp + 0x3c]
jne 0x446190
cmp dword [edi + 0x28], 0x2710
jge 0x44619e
lea ecx, [eax + 3]
cmp ecx, dword [edi + 0x2c]
jle 0x444b96
cmp eax, 0x20
mov dword [edi + 0x2c], ecx
jle 0x444b96
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x30
jmp 0x44627b
mov eax, dword [edi + 0x28]
mov esi, dword [edi + 0x24]
and dword [ebp + 0x48], 0
test eax, eax
mov dword [ebp + 0x4c], esi
jle 0x444b68
mov edi, dword [ebp + 0x4c]
mov ecx, dword [ebp + 0x38]
mov esi, dword [ebp + 0x34]
add edi, 2
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x444aff
sbb edx, edx
sbb edx, 0xffffffff
test edx, edx
jne 0x444b2c
mov ecx, dword [ebp + 0x38]
mov edx, dword [ebp + 0x4c]
cmp byte [edx + ecx + 2], 0
jne 0x444b27
test dword [ebp + 0x30], 0x80000
jne 0x444b2e
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2b
jmp 0x44627b
or edx, 0xffffffff
test edx, edx
jl 0x444b46
mov ecx, dword [ebp + 0x78]
mov edx, dword [ecx + 0x2c]
add dword [ebp + 0x4c], edx
inc dword [ebp + 0x48]
mov edx, dword [ebp + 0x48]
cmp edx, dword [ecx + 0x28]
jl 0x444ae8
mov edi, ecx
jmp 0x444b65
sub eax, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x78]
mov ecx, dword [ecx + 0x2c]
imul eax, ecx
push eax
mov eax, dword [ebp + 0x4c]
push eax
add ecx, eax
push ecx
call fcn.0044ef20
mov edi, dword [ebp + 0x78]
add esp, 0xc
mov esi, dword [ebp + 0x4c]
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.0044dc10
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 + 0x40], 2
mov byte [ebx + 4], al
mov dword [ebp + 0x48], ebx
jmp 0x444707
mov dword [ebp + 0x44], 0x54
inc esi
inc esi
jmp 0x444700
mov dword [ebp + 0x44], 0x55
jmp 0x444bc5
test ax, 0x1000
je 0x444b9d
mov dword [ebp + 0x44], 0x58
jmp 0x444bb6
cmp edi, 2
jg 0x4461cc
cmp edi, 1
jne 0x44479b
or ecx, 0xffffffff
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x20], ecx
jmp 0x44479e
mov ebx, dword [ebp + 0x18]
cmp esi, 0x60
je 0x444c59
cmp esi, 0x57
mov eax, dword [ebp + 0x14]
mov dword [ebp + 8], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 4], eax
mov dword [ebp - 0x28], edx
jl 0x444c67
cmp eax, 0xfffffffe
jne 0x444c3f
cmp ecx, edx
jl 0x444c35
mov dword [ebp + 0x2c], ecx
mov dword [ebp - 0x28], 1
jmp 0x444c39
or dword [ebp + 0x2c], 0xffffffff
or dword [ebp + 4], 0xffffffff
jmp 0x444c4e
cmp ecx, edx
jl 0x444c4e
cmp dword [ebp - 0x10], edx
jge 0x444c53
or ecx, dword [ebp + 0x3c]
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], edx
jl 0x444c59
mov eax, dword [ebp - 0x10]
mov dword [ebp + 0x14], eax
mov edi, dword [ebp + 0x78]
inc dword [ebp + 0x50]
mov esi, dword [ebp + 0x50]
jmp 0x4441eb
cmp esi, 0x52
jne 0x444c59
mov eax, dword [ebp - 0x10]
cmp eax, edx
jl 0x444c59
jmp 0x444c56
mov dword [ebp + 0x48], edx
mov byte [ebx], 0x15
jmp 0x444d7c
cmp dword [ebp + 0x2c], 0xfffffffe
jne 0x444c8a
or dword [ebp + 0x2c], 0xffffffff
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 4], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp + 8], eax
mov dword [ebp + 0x48], ebx
mov byte [ebx], 0xb
jmp 0x444d7c
sub eax, 0x3f
je 0x44591a
sub eax, 0x1c
je 0x4450b3
dec eax
je 0x444d82
dec eax
dec eax
je 0x444d65
sub eax, 0x1d
je 0x444cf7
dec eax
jne 0x444cfd
mov eax, dword [ebp + 0x6c]
mov edx, dword [ebp + 0x2c]
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 0x444cf0
sub ebx, dword [ebp - 0x18]
add dword [eax], ebx
mov eax, ecx
jmp 0x446285
cmp dword [ebp + 0x40], 0
jne 0x444d3a
mov al, byte [ebp + 0x4c]
xor esi, esi
inc esi
cmp dword [ebp + 0x1c], 0
mov byte [ebp - 0x34], al
je 0x4457d7
cmp dword [ebp + 0x4c], 0xc0
jl 0x4457d7
mov ecx, dword [ebp + 0x50]
jmp 0x444d2c
mov dword [ebp + 0x50], ecx
mov al, byte [ecx]
mov byte [ebp + esi - 0x34], al
inc esi
inc ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x444d22
jmp 0x4457d7
mov edi, dword [ebp + 0x68]
push edi
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x20]
push eax
lea eax, [esi + 1]
call fcn.00443469
add esp, 0xc
cmp dword [edi], 0
mov dword [ebp + 0x50], eax
jne 0x44627b
mov edi, dword [ebp + 0x78]
jmp 0x445921
test byte [ebp + 0x30], 2
je 0x444d75
cmp dword [ebp + 0x2c], 0xfffffffe
jne 0x444d75
or dword [ebp + 0x2c], 0xffffffff
and dword [ebp + 0x48], 0
mov byte [ebx], 0x14
inc ebx
jmp 0x444c5c
push 0
push dword [ebp + 0x30]
lea eax, [ebp + 0x50]
push dword [edi + 0x30]
mov dword [ebp - 0x1c], esi
push dword [ebp + 0x68]
push eax
call fcn.0044310d
mov ecx, dword [ebp + 0x68]
add esp, 0x14
cmp dword [ecx], 0
jne 0x44627b
xor edi, edi
cmp eax, edi
jge 0x44508e
mov ecx, eax
neg ecx
cmp ecx, 0x14
jne 0x444de0
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x5c
jne 0x444dd4
add eax, 2
cmp byte [eax], 0x45
jne 0x444dd4
mov dword [ebp + 0x50], eax
jmp 0x444c59
mov dword [ebp + 0xc], 1
jmp 0x444c59
cmp ecx, 0x13
je 0x444c59
cmp dword [ebp + 0x2c], 0xfffffffe
jne 0x444dfd
cmp ecx, 4
jle 0x444dfd
cmp ecx, 0x11
jge 0x444dfd
or dword [ebp + 0x2c], 0xffffffff
cmp ecx, 0x15
mov edx, dword [ebp + 0x2c]
mov dword [ebp + 4], edx
mov edx, dword [ebp + 0x14]
mov dword [ebp + 8], edx
jne 0x445008
mov esi, dword [ebp + 0x50]
inc esi
mov dl, byte [esi]
cmp dl, 0x3c
je 0x444e26
cmp dl, 0x27
jne 0x445008
xor edx, edx
mov dword [ebp + 0x50], esi
cmp byte [esi], 0x3c
mov dword [ebp + 0x40], edi
mov edi, dword [ebp + 0x78]
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 0x444e60
mov eax, ecx
inc esi
mov dword [ebp + 0x50], esi
movzx ecx, byte [esi]
test byte [ecx + eax], 0x10
jne 0x444e53
mov eax, esi
sub eax, dword [ebp + 0x34]
cmp dword [ebp + 0x7c], 0
mov dword [ebp + 0x38], eax
je 0x444e88
movzx ecx, byte [esi]
cmp ecx, edx
jne 0x446190
cmp eax, 0x20
jg 0x444ac5
and dword [ebp + 0x4c], 0
jmp 0x444f03
mov eax, dword [edi + 0x24]
and dword [ebp + 0x48], 0
cmp dword [edi + 0x28], 0
mov dword [ebp + 0x4c], eax
jle 0x444ec4
mov esi, eax
push dword [ebp + 0x38]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x34]
call fcn.0044e438
add esp, 0xc
test eax, eax
je 0x444ec1
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
cmp eax, dword [edi + 0x28]
mov dword [ebp + 0x4c], esi
jl 0x444e9a
mov esi, dword [ebp + 0x50]
mov eax, dword [ebp + 0x48]
cmp eax, dword [edi + 0x28]
jge 0x444edb
mov eax, dword [ebp + 0x4c]
xor ecx, ecx
mov ch, byte [eax]
mov cl, byte [eax + 1]
mov dword [ebp + 0x4c], ecx
jmp 0x444f03
mov eax, dword [ebp + 0x30]
shr eax, 3
and eax, 1
push eax
push dword [ebp + 0x38]
mov eax, dword [edi + 0x30]
push dword [ebp + 0x34]
mov ecx, esi
call fcn.004434fe
add esp, 0xc
test eax, eax
mov dword [ebp + 0x4c], eax
jle 0x446155
cmp dword [ebp + 0x40], 0
je 0x445018
cmp dword [ebp + 0x7c], 0
mov eax, dword [edi + 0x14]
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x3c], eax
jne 0x444fbb
cmp dword [ebp + 0x4c], 0
mov byte [ebx], 0
je 0x444f3c
push dword [ebp + 0x4c]
mov eax, dword [edi + 0x14]
push dword [ebp + 0x1c]
call fcn.0044389c
pop ecx
pop ecx
mov dword [ebp + 0x3c], eax
test eax, eax
jne 0x444f92
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x50]
shr eax, 3
and eax, 1
push eax
push dword [ebp + 0x4c]
mov eax, dword [edi + 0x30]
push 0
call fcn.004434fe
add esp, 0xc
test eax, eax
jl 0x446155
mov eax, dword [edi + 0x14]
mov ecx, dword [ebp + 0x4c]
add ecx, eax
mov dword [ebp + 0x3c], 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 0x444fb8
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
test ecx, ecx
jne 0x444fbb
push dword [ebp + 0x1c]
mov eax, dword [ebp + 0x74]
push ebx
push dword [ebp + 0x3c]
call fcn.00443ad2
add esp, 0xc
test eax, eax
jne 0x4461e8
mov eax, dword [ebp + 0x3c]
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 + 0x2c], 0xfffffffe
mov dword [ebp - 0xc], 9
jne 0x444c5c
or dword [ebp + 0x2c], 0xffffffff
jmp 0x444c5c
cmp ecx, 0x16
jl 0x445059
mov edi, dword [ebp + 0x78]
push 0xffffffffffffffea
pop ecx
sub ecx, eax
mov dword [ebp + 0x4c], ecx
cmp dword [ebp + 0x2c], 0xfffffffe
jne 0x445022
or dword [ebp + 0x2c], 0xffffffff
mov ecx, dword [ebp + 0x4c]
mov byte [ebx], 0x4b
mov dword [ebp + 0x48], 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 0x445042
shl eax, cl
or dword [edi + 0x38], eax
cmp ecx, dword [edi + 0x34]
jle 0x444c5c
mov eax, dword [ebp + 0x4c]
mov dword [edi + 0x34], eax
jmp 0x444c5c
cmp ecx, 0x10
je 0x4461f6
cmp ecx, 0xd
je 0x4461f6
cmp ecx, 0xe
je 0x4461f6
cmp ecx, 4
jle 0x445081
cmp ecx, 0x11
mov dword [ebp + 0x48], ebx
jl 0x445084
mov dword [ebp + 0x48], edi
neg al
mov byte [ebx], al
inc ebx
jmp 0x444c59
cmp dword [ebp + 0x1c], edi
je 0x4457ce
cmp eax, 0x7f
jle 0x4457ce
lea ecx, [ebp - 0x34]
push ecx
push eax
call fcn.0044b027
pop ecx
pop ecx
mov esi, eax
jmp 0x4457d4
mov al, byte [esi + 1]
cmp al, 0x3a
mov dword [ebp + 0x48], ebx
je 0x4450c5
cmp al, 0x2e
je 0x4450c5
cmp al, 0x3d
jne 0x4450db
lea eax, [ebp - 0x1c]
push eax
mov ecx, edi
mov eax, esi
call fcn.00443b04
test eax, eax
pop ecx
jne 0x446201
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
movzx esi, byte [eax]
cmp esi, 0x5e
jne 0x4450fb
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
movzx esi, byte [eax]
mov dword [ebp + 0x34], 1
jmp 0x4450ff
and dword [ebp + 0x34], 0
and dword [ebp + 0x44], 0
or dword [ebp + 0x3c], 0xffffffff
xor eax, eax
and dword [ebp + 0x38], eax
test esi, esi
push 8
pop ecx
lea edi, [ebp - 0x54]
rep stosd dword es:[edi], eax
lea eax, [ebx + 4]
mov dword [ebp + 0x4c], eax
je 0x446246
cmp dword [ebp + 0x1c], 0
je 0x445180
cmp esi, 0x7f
jle 0x445180
cmp esi, 0xc0
jl 0x445180
mov eax, esi
and eax, 0x3f
movzx eax, byte [eax + 0x464738]
mov edx, dword [eax*4 + 0x464720]
mov edi, eax
imul edi, edi, 6
and edx, esi
mov ecx, edi
shl edx, cl
xor ecx, ecx
inc ecx
cmp eax, ecx
mov esi, edx
mov dword [ebp + 0x40], ecx
jl 0x44517d
mov ecx, dword [ebp + 0x50]
mov edx, dword [ebp + 0x40]
movzx edx, byte [edx + ecx]
sub edi, 6
and edx, 0x3f
mov ecx, edi
shl edx, cl
or esi, edx
inc dword [ebp + 0x40]
cmp dword [ebp + 0x40], eax
jle 0x44515f
add dword [ebp + 0x50], eax
cmp dword [ebp + 0xc], 0
je 0x4451a8
cmp esi, 0x5c
jne 0x445489
mov eax, dword [ebp + 0x50]
inc eax
cmp byte [eax], 0x45
jne 0x445489
and dword [ebp + 0xc], 0
mov dword [ebp + 0x50], eax
jmp 0x44573d
cmp esi, 0x5b
jne 0x4452e5
mov eax, dword [ebp + 0x50]
mov al, byte [eax + 1]
cmp al, 0x3a
je 0x4451c7
cmp al, 0x2e
je 0x4451c7
cmp al, 0x3d
jne 0x445489
mov edi, dword [ebp + 0x78]
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp + 0x50]
mov ecx, edi
call fcn.00443b04
test eax, eax
pop ecx
je 0x445489
mov eax, dword [edi + 8]
and dword [ebp + 0x24], 0
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x3a
jne 0x44621b
inc eax
inc eax
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5e
jne 0x44520d
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.00443b3a
test eax, eax
pop ecx
pop ecx
jl 0x446226
test byte [ebp + 0x30], 1
je 0x445230
cmp eax, 2
jg 0x445230
xor eax, eax
mov edx, dword [ebp + 0x40]
imul eax, eax, 3
shl eax, 2
mov esi, dword [eax + 0x4641a0]
push 8
add esi, edx
pop ecx
lea edi, [ebp - 0x88]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 0x4641a4]
mov edi, dword [eax + 0x4641a8]
xor eax, eax
cmp ecx, eax
jl 0x44528a
xor esi, esi
add ecx, edx
cmp edi, eax
jl 0x445278
mov dl, byte [ecx + esi]
or byte [ebp + esi - 0x88], dl
inc esi
cmp esi, 0x20
jl 0x445266
jmp 0x44528a
mov dl, byte [ecx + esi]
not dl
and byte [ebp + esi - 0x88], dl
inc esi
cmp esi, 0x20
jl 0x445278
cmp edi, eax
jge 0x445290
neg edi
cmp edi, 1
jne 0x44529e
and byte [ebp - 0x87], 0xc3
jmp 0x4452a7
cmp edi, 2
jne 0x4452a7
and byte [ebp - 0x7d], 0x7f
cmp dword [ebp + 0x24], eax
je 0x4452c1
mov cl, byte [ebp + eax - 0x88]
not cl
or byte [ebp + eax - 0x54], cl
inc eax
cmp eax, 0x20
jl 0x4452ac
jmp 0x4452d2
mov cl, byte [ebp + eax - 0x88]
or byte [ebp + eax - 0x54], cl
inc eax
cmp eax, 0x20
jl 0x4452c1
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x44], 0xa
jmp 0x44573d
cmp esi, 0x5c
jne 0x445489
mov eax, dword [ebp + 0x78]
mov edi, dword [ebp + 0x68]
push 1
push dword [ebp + 0x30]
push dword [eax + 0x30]
lea eax, [ebp + 0x50]
push edi
push eax
call fcn.0044310d
add esp, 0x14
cmp dword [edi], 0
mov esi, eax
jne 0x44627b
mov ecx, esi
neg ecx
cmp ecx, 4
jne 0x445325
push 8
pop esi
jmp 0x445489
cmp ecx, 0x10
jne 0x44532e
push 0x58
jmp 0x44531f
cmp ecx, 0xf
jne 0x445337
push 0x52
jmp 0x44531f
cmp ecx, 0x14
jne 0x44535d
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x5c
jne 0x445351
add eax, 2
cmp byte [eax], 0x45
je 0x4451a0
mov dword [ebp + 0xc], 1
jmp 0x44573d
test esi, esi
jge 0x445489
mov eax, dword [ebp + 0x78]
add dword [ebp + 0x44], 2
cmp dword [ebp + 0x7c], 0
mov eax, dword [eax + 8]
jne 0x44543f
sub ecx, 5
je 0x445428
dec ecx
je 0x445413
dec ecx
je 0x4453f0
dec ecx
je 0x4453cf
dec ecx
je 0x4453b5
dec ecx
je 0x44539d
sub ecx, 9
jmp 0x44546f
xor esi, esi
mov cl, byte [eax + esi + 0xa0]
or byte [ebp + esi - 0x54], cl
inc esi
cmp esi, 0x20
jl 0x44539f
jmp 0x44573d
xor esi, esi
mov cl, byte [eax + esi + 0xa0]
not cl
or byte [ebp + esi - 0x54], cl
inc esi
cmp esi, 0x20
jl 0x4453b7
jmp 0x44573d
mov edi, eax
lea eax, [ebp - 0x54]
xor esi, esi
sub edi, eax
lea ecx, [ebp + esi - 0x54]
mov al, byte [edi + ecx]
or byte [ecx], al
inc esi
cmp esi, 0x20
jl 0x4453d8
and byte [ebp - 0x53], 0xf7
jmp 0x44573d
mov edi, eax
lea eax, [ebp - 0x54]
xor esi, esi
sub edi, eax
lea ecx, [ebp + esi - 0x54]
mov al, byte [edi + ecx]
not al
or byte [ecx], al
inc esi
cmp esi, 0x20
jl 0x4453f9
or byte [ebp - 0x53], 8
jmp 0x44573d
xor esi, esi
mov cl, byte [eax + esi + 0x40]
or byte [ebp + esi - 0x54], cl
inc esi
cmp esi, 0x20
jl 0x445415
jmp 0x44573d
xor esi, esi
mov cl, byte [eax + esi + 0x40]
not cl
or byte [ebp + esi - 0x54], cl
inc esi
cmp esi, 0x20
jl 0x44542a
jmp 0x44573d
cmp esi, 0xfffffffa
je 0x44573d
cmp esi, 0xfffffffb
je 0x44573d
cmp esi, 0xfffffff6
je 0x44573d
cmp esi, 0xfffffff7
je 0x44573d
cmp esi, 0xfffffff8
je 0x44573d
cmp esi, 0xfffffff9
je 0x44573d
test byte [ebp + 0x30], 0x40
jne 0x446231
mov eax, dword [ebp + 0x50]
sub dword [ebp + 0x44], 2
movzx esi, byte [eax]
mov eax, dword [ebp + 0x50]
jmp 0x44549f
lea ecx, [eax + 2]
cmp byte [ecx], 0x45
jne 0x4454a5
and dword [ebp + 0xc], 0
mov eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax + 1], 0x5c
je 0x44548e
cmp dword [ebp + 0xc], 0
mov dword [ebp + 0x24], eax
jne 0x4456ba
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x2d
jne 0x4456ba
push 2
pop ecx
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
jne 0x445507
cmp byte [eax + 1], 0x45
jne 0x4454f9
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
je 0x4454cc
jmp 0x4454f9
cmp byte [eax + 1], 0x51
jne 0x445507
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
jne 0x445500
cmp byte [eax + 1], 0x45
jne 0x445500
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
je 0x4454de
jmp 0x445507
mov dword [ebp + 0xc], 1
mov al, byte [eax]
test al, al
je 0x4456b4
cmp dword [ebp + 0xc], 0
jne 0x44551f
cmp al, 0x5d
je 0x4456b4
cmp dword [ebp + 0x1c], 0
movzx edi, al
je 0x44557f
cmp edi, 0xc0
jl 0x44557f
mov eax, edi
and eax, 0x3f
movzx eax, byte [eax + 0x464738]
mov edx, dword [eax*4 + 0x464720]
mov ecx, eax
imul ecx, ecx, 6
and edx, edi
shl edx, cl
cmp eax, 1
mov dword [ebp + 8], eax
mov dword [ebp + 0x40], 1
mov edi, edx
jl 0x44557c
mov edx, dword [ebp + 0x40]
mov eax, dword [ebp + 0x50]
movzx eax, byte [edx + eax]
and eax, 0x3f
sub ecx, 6
shl eax, cl
or edi, eax
inc dword [ebp + 0x40]
mov eax, dword [ebp + 8]
cmp dword [ebp + 0x40], eax
jle 0x44555d
add dword [ebp + 0x50], eax
cmp dword [ebp + 0xc], 0
jne 0x4455d4
cmp edi, 0x5c
jne 0x4455d4
mov eax, dword [ebp + 0x78]
push 1
push dword [ebp + 0x30]
push dword [eax + 0x30]
lea eax, [ebp + 0x50]
push dword [ebp + 0x68]
push eax
call fcn.0044310d
mov edi, eax
mov eax, dword [ebp + 0x68]
add esp, 0x14
cmp dword [eax], 0
jne 0x44627b
test edi, edi
jge 0x4455d4
cmp edi, 0xfffffffc
jne 0x4455bf
push 8
jmp 0x4455d3
cmp edi, 0xfffffff0
jne 0x4455c8
push 0x58
jmp 0x4455d3
cmp edi, 0xfffffff1
jne 0x4456b4
push 0x52
pop edi
cmp edi, esi
jl 0x44623b
je 0x4456ba
cmp dword [ebp + 0x1c], 0
je 0x44563c
cmp edi, 0xff
jg 0x4455fb
test byte [ebp + 0x30], 1
je 0x44563c
cmp edi, 0x7f
jle 0x44563c
mov eax, dword [ebp + 0x4c]
inc dword [ebp + 0x4c]
push dword [ebp + 0x4c]
mov dword [ebp + 0x38], 1
push esi
mov byte [eax], 2
call fcn.0044b027
add dword [ebp + 0x4c], eax
push dword [ebp + 0x4c]
push edi
call fcn.0044b027
add dword [ebp + 0x4c], eax
add esp, 0x10
test byte [ebp + 0x30], 1
je 0x44573d
cmp esi, 0x7f
jg 0x44573d
push 0x7f
pop edi
mov ecx, dword [ebp + 0x44]
mov eax, edi
sub eax, esi
cmp dword [ebp + 0x7c], 0
lea eax, [ecx + eax + 1]
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x3c], edi
jne 0x44573d
cmp esi, edi
jg 0x44573d
mov eax, dword [ebp + 0x30]
and eax, 1
mov dword [ebp + 0x24], eax
mov eax, esi
cdq
and edx, 7
add eax, edx
mov ecx, esi
and ecx, 7
mov dl, 1
shl dl, cl
sar eax, 3
lea eax, [ebp + eax - 0x54]
or byte [eax], dl
cmp dword [ebp + 0x24], 0
je 0x4456aa
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
and ecx, 7
mov dl, 1
sar eax, 3
shl dl, cl
lea eax, [ebp + eax - 0x54]
or byte [eax], dl
inc esi
cmp esi, edi
jle 0x445668
jmp 0x44573d
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0x50], eax
cmp dword [ebp + 0x1c], 0
je 0x4456f3
cmp esi, 0xff
jg 0x4456d3
test byte [ebp + 0x30], 1
je 0x4456f3
cmp esi, 0x7f
jle 0x4456f3
mov eax, dword [ebp + 0x4c]
inc dword [ebp + 0x4c]
push dword [ebp + 0x4c]
mov dword [ebp + 0x38], 1
push esi
mov byte [eax], 1
call fcn.0044b027
add dword [ebp + 0x4c], eax
pop ecx
pop ecx
jmp 0x44573d
mov eax, esi
cdq
and edx, 7
add eax, edx
sar eax, 3
lea edi, [ebp + eax - 0x54]
mov ecx, esi
and ecx, 7
mov al, 1
shl al, cl
or byte [edi], al
test byte [ebp + 0x30], 1
je 0x445737
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 - 0x54]
mov ecx, esi
and ecx, 7
mov al, 1
shl al, cl
or byte [edi], al
inc dword [ebp + 0x44]
mov dword [ebp + 0x3c], esi
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
movzx esi, byte [eax]
test esi, esi
je 0x446246
cmp esi, 0x5d
jne 0x445122
cmp dword [ebp + 0xc], 0
jne 0x445122
xor ecx, ecx
cmp dword [ebp + 0x44], 1
jne 0x445862
cmp dword [ebp + 0x1c], ecx
je 0x44578d
cmp dword [ebp + 0x38], ecx
jne 0x445862
cmp dword [ebp + 0x34], ecx
je 0x44578d
cmp dword [ebp + 0x3c], 0x80
jge 0x445862
cmp dword [ebp + 0x34], ecx
mov eax, dword [ebp + 0x14]
mov dword [ebp + 8], eax
je 0x4457b4
cmp dword [ebp + 0x2c], 0xfffffffe
jne 0x4457a2
or dword [ebp + 0x2c], 0xffffffff
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 4], eax
mov al, byte [ebp + 0x3c]
mov byte [ebx], 0x18
inc ebx
jmp 0x445086
cmp dword [ebp + 0x1c], ecx
je 0x4457cb
cmp dword [ebp + 0x3c], 0x7f
jle 0x4457cb
lea eax, [ebp - 0x34]
push eax
push dword [ebp + 0x3c]
jmp 0x4450a5
mov al, byte [ebp + 0x3c]
xor esi, esi
inc esi
mov byte [ebp - 0x34], al
mov edi, dword [ebp + 0x78]
mov al, byte [ebp + 0x30]
and al, 1
or al, 0x16
mov byte [ebx], al
mov dword [ebp + 0x48], ebx
inc ebx
xor eax, eax
test esi, esi
jle 0x4457f6
mov cl, byte [ebp + eax - 0x34]
mov byte [ebx], cl
inc ebx
inc eax
cmp eax, esi
jl 0x4457ea
mov eax, dword [ebp + 0x2c]
cmp eax, 0xfffffffe
jne 0x445838
or dword [ebp + 4], 0xffffffff
cmp esi, 1
mov eax, dword [ebp + 0x14]
mov dword [ebp + 8], eax
je 0x44581c
cmp dword [ebp - 0x14], 0
je 0x44581c
or dword [ebp + 0x14], 0xffffffff
jmp 0x444fff
movzx eax, byte [ebp - 0x34]
or eax, dword [ebp - 0x14]
cmp esi, 1
mov dword [ebp + 0x2c], eax
je 0x444c5c
movzx eax, byte [ebx - 1]
or eax, dword [edi + 0x40]
jmp 0x44585a
cmp esi, 1
mov dword [ebp + 4], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp + 8], eax
je 0x445850
cmp dword [ebp - 0x14], 0
jne 0x444c5c
movzx eax, byte [ebx - 1]
or eax, dword [edi + 0x40]
or eax, dword [ebp - 0x14]
mov dword [ebp + 0x14], eax
jmp 0x444c5c
cmp dword [ebp + 0x2c], 0xfffffffe
jne 0x44586c
or dword [ebp + 0x2c], 0xffffffff
cmp dword [ebp + 0x38], ecx
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 4], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp + 8], eax
je 0x4458df
mov eax, dword [ebp + 0x4c]
inc dword [ebp + 0x4c]
mov byte [eax], 0
mov byte [ebx], 0x4a
add ebx, 3
cmp dword [ebp + 0x34], ecx
setne al
cmp dword [ebp + 0x44], ecx
mov byte [ebx], al
jle 0x4458c3
or al, 2
mov byte [ebx], al
mov eax, dword [ebp + 0x4c]
inc ebx
sub eax, ebx
push eax
lea eax, [ebx + 0x20]
push ebx
push eax
call fcn.0044ef20
mov eax, dword [ebp + 0x4c]
add esp, 0xc
push 8
mov edi, ebx
pop ecx
lea esi, [ebp - 0x54]
rep movsd dword es:[edi], dword [esi]
lea ebx, [eax + 0x20]
jmp 0x4458c6
mov ebx, dword [ebp + 0x4c]
mov eax, dword [ebp + 0x48]
mov ecx, ebx
sub ecx, eax
sar ecx, 8
mov byte [eax + 1], cl
mov cl, bl
sub cl, al
mov byte [eax + 2], cl
jmp 0x444c59
cmp dword [ebp + 0x34], ecx
je 0x445904
mov byte [ebx], 0x49
inc ebx
cmp dword [ebp + 0x7c], ecx
jne 0x445912
lea eax, [ebp - 0x54]
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 0x4458f7
jmp 0x445912
mov byte [ebx], 0x48
inc ebx
push 8
pop ecx
lea esi, [ebp - 0x54]
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
add ebx, 0x20
jmp 0x444c59
and dword [ebp + 0x20], 0
mov dword [ebp + 0x28], ecx
mov edx, dword [ebp + 0x48]
test edx, edx
je 0x446251
mov eax, dword [ebp + 0x20]
test eax, eax
jne 0x44593f
mov ecx, dword [ebp + 4]
mov dword [ebp + 0x2c], ecx
mov ecx, dword [ebp + 8]
mov dword [ebp + 0x14], ecx
sub eax, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x50]
neg eax
sbb eax, eax
and dword [ebp + 0x44], 0
and dword [ebp + 0x3c], 0
and eax, 0x200
mov esi, edx
inc ecx
mov dword [ebp - 0x68], eax
mov dword [ebp + 0x18], esi
mov al, byte [ecx]
cmp al, 0x2b
jne 0x445976
mov edx, dword [ebp + 0x48]
xor eax, eax
mov dword [ebp + 0x3c], 1
mov dword [ebp + 0x50], ecx
jmp 0x445985
cmp al, 0x3f
jne 0x445982
mov eax, dword [ebp - 0x64]
mov dword [ebp + 0x50], ecx
jmp 0x445985
mov eax, dword [ebp - 0x60]
mov cl, byte [edx]
cmp cl, 0x16
mov dword [ebp + 0x38], eax
mov byte [ebp + 0x13], cl
je 0x445de1
cmp cl, 0x17
je 0x445de1
cmp cl, 0x18
jne 0x4459dd
cmp dword [ebp + 0x3c], 0
movzx eax, byte [edx + 1]
mov dword [ebp + 0x44], 0xd
mov dword [ebp + 0x4c], eax
jne 0x445e44
cmp dword [ebp + 0x28], 0
jge 0x445e44
push dword [ebp + 0x30]
mov eax, dword [ebp + 0x50]
inc eax
push eax
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x4c]
push 0x18
jmp 0x445e2a
cmp cl, 0x11
jae 0x445a1a
cmp dword [ebp + 0x3c], 0
movzx eax, cl
mov dword [ebp + 0x44], 0x1a
mov dword [ebp + 0x4c], eax
jne 0x445e44
cmp dword [ebp + 0x28], 0
jge 0x445e44
push dword [ebp + 0x30]
mov eax, dword [ebp + 0x50]
inc eax
push eax
push 0
push dword [ebp + 0x1c]
push 0
push dword [ebp + 0x4c]
jmp 0x445e2a
cmp cl, 0x48
je 0x445d67
cmp cl, 0x49
je 0x445d67
cmp cl, 0x4a
je 0x445d67
cmp cl, 0x4b
je 0x445d67
cmp cl, 0x58
je 0x445a56
cmp cl, 0x59
je 0x445a56
cmp cl, 0x57
je 0x445a56
cmp cl, 0x5a
jne 0x44625c
and dword [ebp + 0x34], 0
and dword [ebp + 0x4c], 0
mov eax, ebx
sub eax, edx
cmp cl, 0x5a
mov dword [ebp + 0x44], eax
jne 0x445a74
cmp byte [edx + 3], 0x60
je 0x446267
cmp eax, 0x7530
jg 0x446272
cmp dword [ebp + 0x28], 0xffffffff
jne 0x445a9d
mov eax, edx
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x4f
jne 0x445a87
mov ecx, ebx
sub ecx, eax
mov dword [ebp + 0x34], ecx
cmp dword [ebp + 0x20], 0
jne 0x445b40
cmp dword [ebp + 0x28], 0
je 0x445d6d
cmp dword [ebp + 0x28], 1
push dword [ebp - 4]
mov edi, dword [ebp + 0x78]
push dword [ebp + 0x1c]
mov byte [ebx], 0
jg 0x445af0
push 1
push dword [ebp + 0x48]
call fcn.00443b78
mov eax, dword [ebp + 0x48]
push dword [ebp + 0x44]
lea esi, [eax + 1]
push eax
push esi
call fcn.0044ef20
mov al, byte [ebp + 0x38]
mov ecx, dword [ebp + 0x48]
add esp, 0x1c
inc ebx
add al, 0x61
mov byte [ecx], al
mov dword [ebp + 0x48], esi
jmp 0x445b2f
push 4
push dword [ebp + 0x48]
call fcn.00443b78
push dword [ebp + 0x44]
mov eax, dword [ebp + 0x48]
push eax
add eax, 4
push eax
call fcn.0044ef20
mov cl, byte [ebp + 0x38]
mov eax, dword [ebp + 0x48]
add cl, 0x61
mov byte [eax], cl
add esp, 0x1c
add ebx, 4
inc eax
mov byte [eax], 0x58
inc eax
mov dword [ebp + 0x4c], eax
mov byte [eax], 0
mov byte [eax + 1], 0
inc eax
inc eax
mov dword [ebp + 0x48], eax
dec dword [ebp + 0x28]
mov esi, dword [ebp + 0x18]
mov eax, dword [ebp + 0x28]
mov edi, dword [ebp + 0x78]
jmp 0x445bdd
cmp dword [ebp + 0x20], 1
jle 0x445bd0
mov eax, dword [ebp + 0x7c]
test eax, eax
je 0x445b5d
mov ecx, dword [ebp + 0x20]
dec ecx
imul ecx, dword [ebp - 0xc]
add dword [eax], ecx
jmp 0x445bd0
cmp dword [ebp - 0x28], 0
je 0x445b6f
cmp dword [ebp + 0x14], 0
jge 0x445b6f
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x14], eax
cmp dword [ebp + 0x20], 1
jle 0x445bd0
mov eax, dword [ebp + 0x20]
mov esi, dword [ebp - 4]
dec eax
mov dword [ebp + 0x24], eax
push dword [ebp + 0x44]
mov eax, dword [edi + 0x20]
push dword [ebp + 0x48]
mov dword [ebp + 0x40], eax
push ebx
call fcn.0044dc10
add esp, 0xc
jmp 0x445bba
mov ecx, dword [edi + 0x20]
xor eax, eax
mov ah, byte [esi]
mov al, byte [esi + 1]
add eax, dword [ebp + 0x44]
sar eax, 8
mov byte [ecx], al
mov al, byte [esi + 1]
add al, byte [ebp + 0x44]
mov ecx, dword [edi + 0x20]
mov byte [ecx + 1], al
add dword [edi + 0x20], 2
inc esi
inc esi
cmp esi, dword [ebp + 0x40]
jb 0x445b96
mov esi, dword [ebp + 0x40]
add ebx, dword [ebp + 0x44]
dec dword [ebp + 0x24]
mov dword [ebp - 4], esi
jne 0x445b7f
mov esi, dword [ebp + 0x18]
mov eax, dword [ebp + 0x28]
test eax, eax
jle 0x445bdf
sub eax, dword [ebp + 0x20]
mov dword [ebp + 0x28], eax
test eax, eax
jl 0x445d04
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x445c03
test eax, eax
jle 0x445c03
mov edx, dword [ebp - 0xc]
add edx, 7
imul edx, eax
sub edx, 6
add dword [ecx], edx
jmp 0x445cbc
dec eax
mov dword [ebp + 0x34], eax
js 0x445cbc
mov al, byte [ebp + 0x38]
add al, 0x61
mov byte [ebp - 5], al
mov esi, dword [edi + 0x20]
mov al, byte [ebp - 5]
mov byte [ebx], al
inc ebx
cmp dword [ebp + 0x34], 0
mov dword [ebp + 0x24], esi
je 0x445c47
mov eax, dword [ebp + 0x4c]
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 + 0x4c], ebx
mov byte [ebx], cl
mov byte [ebx + 1], al
inc ebx
inc ebx
push dword [ebp + 0x44]
push dword [ebp + 0x48]
push ebx
call fcn.0044dc10
mov eax, dword [ebp - 4]
add esp, 0xc
cmp eax, esi
jae 0x445caa
mov esi, dword [ebp + 0x34]
neg esi
sbb esi, esi
and esi, 3
inc esi
cmp dword [ebp + 0x34], 0
sete cl
dec cl
and cl, 3
inc cl
mov byte [ebp + 0x13], cl
mov edx, dword [edi + 0x20]
xor ecx, ecx
mov ch, byte [eax]
mov cl, byte [eax + 1]
add ecx, esi
add ecx, dword [ebp + 0x44]
sar ecx, 8
mov byte [edx], cl
mov cl, byte [eax + 1]
add cl, byte [ebp + 0x13]
mov edx, dword [edi + 0x20]
add cl, byte [ebp + 0x44]
mov byte [edx + 1], cl
add dword [edi + 0x20], 2
inc eax
inc eax
cmp eax, dword [ebp + 0x24]
jb 0x445c79
mov esi, dword [ebp + 0x24]
add ebx, dword [ebp + 0x44]
dec dword [ebp + 0x34]
mov dword [ebp - 4], esi
jns 0x445c15
mov esi, dword [ebp + 0x18]
cmp dword [ebp + 0x4c], 0
je 0x446022
mov esi, dword [ebp + 0x4c]
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 0x445cc9
jmp 0x44601f
xor eax, eax
mov edi, ebx
sub edi, dword [ebp + 0x34]
mov ah, byte [edi + 1]
mov esi, edi
mov al, byte [edi + 2]
sub esi, eax
mov al, byte [ebp + 0x38]
add al, 0x50
cmp dword [ebp + 0x7c], 0
mov byte [edi], al
jne 0x44601f
cmp byte [esi], 0x57
je 0x44601f
mov dword [ebp + 0x40], esi
push dword [ebp + 0x1c]
push edi
push dword [ebp + 0x40]
call fcn.00443965
add esp, 0xc
test eax, eax
jne 0x445d5f
mov eax, dword [ebp + 0x40]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x4e
mov dword [ebp + 0x40], eax
je 0x445d32
jmp 0x44601f
add byte [esi], 3
jmp 0x44601f
cmp dword [ebp + 0x28], 0
jne 0x445d74
mov ebx, edx
jmp 0x446112
mov ecx, dword [ebp + 0x28]
xor esi, esi
inc esi
cmp ecx, esi
je 0x445d81
mov dword [edi + 0x44], esi
cmp dword [ebp + 0x20], 0
jne 0x445d93
cmp ecx, 0xffffffff
jne 0x445da5
add al, 0x40
jmp 0x44601c
cmp dword [ebp + 0x20], 1
jne 0x445db0
cmp ecx, 0xffffffff
jne 0x445db0
add al, 0x42
jmp 0x44601c
cmp ecx, esi
jne 0x445db0
add al, 0x44
jmp 0x44601c
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 0x445dd0
and dword [ebp + 0x28], 0
mov ecx, dword [ebp + 0x28]
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov byte [ebx + 1], cl
inc ebx
inc ebx
jmp 0x44601f
cmp dword [ebp + 0x1c], 0
je 0x445def
lea ecx, [ebx - 1]
test byte [ecx], 0x80
jne 0x445e5c
cmp dword [ebp + 0x20], 1
movzx eax, byte [ebx - 1]
mov dword [ebp + 0x4c], eax
jle 0x445e07
mov edi, dword [edi + 0x40]
or edi, eax
or edi, dword [ebp - 0x14]
mov dword [ebp + 0x14], edi
cmp dword [ebp + 0x3c], 0
jne 0x445e44
cmp dword [ebp + 0x28], 0
jge 0x445e44
push dword [ebp + 0x30]
mov eax, dword [ebp + 0x50]
inc eax
push eax
lea eax, [ebp - 0x5c]
push eax
push dword [ebp + 0x1c]
movzx eax, byte [ebp + 0x13]
push dword [ebp + 0x4c]
push eax
mov edi, dword [ebp + 0x78]
call fcn.00443c3e
add esp, 0x18
test eax, eax
je 0x445e44
and dword [ebp + 0x38], 0
mov dword [ebp + 0x3c], 1
mov ecx, dword [ebp + 0x48]
mov al, byte [ecx]
cmp al, 0xe
je 0x445e82
cmp al, 0xd
je 0x445e82
or dword [ebp + 0x34], 0xffffffff
or dword [ebp + 0x40], 0xffffffff
jmp 0x445e90
dec ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x445e5b
mov eax, ebx
sub eax, ecx
push eax
mov dword [ebp + 0x4c], eax
push ecx
lea eax, [ebp - 0x5c]
push eax
call fcn.0044dc10
add esp, 0xc
or dword [ebp + 0x4c], 0x80
jmp 0x445e07
movzx eax, byte [ecx + 1]
mov dword [ebp + 0x40], eax
movzx eax, byte [ecx + 2]
mov dword [ebp + 0x34], eax
cmp dword [ebp + 0x28], 0
mov esi, ebx
mov ebx, ecx
je 0x446112
mov edx, dword [ebp + 0x28]
xor edi, edi
inc edi
cmp edx, edi
je 0x445eae
mov eax, dword [ebp + 0x78]
mov dword [eax + 0x44], edi
mov eax, dword [ebp + 0x38]
mov ecx, dword [ebp + 0x44]
add eax, ecx
cmp dword [ebp + 0x20], 0
mov dword [ebp + 0x38], eax
jne 0x445ee2
cmp edx, 0xffffffff
mov ebx, dword [ebp + 0x48]
je 0x445f7e
cmp edx, edi
je 0x445fda
add al, 0x1f
mov byte [ebx], al
inc ebx
mov eax, edx
mov byte [ebx + 1], dl
jmp 0x445feb
cmp dword [ebp + 0x20], 1
jne 0x445f21
cmp edx, 0xffffffff
jne 0x445ef7
mov ebx, dword [ebp + 0x48]
add al, 0x1b
jmp 0x445fdc
cmp edx, 1
mov ebx, esi
je 0x446112
mov al, byte [ebp + 0x38]
add al, 0x1f
mov byte [esi], al
mov eax, dword [ebp + 0x28]
lea ecx, [eax - 1]
sar ecx, 8
lea ebx, [esi + 1]
dec al
mov byte [ebx], cl
mov byte [ebx + 1], al
jmp 0x445ff0
mov ebx, dword [ebp + 0x48]
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 0x445f82
cmp dword [ebp + 0x1c], 0
je 0x445f68
cmp dword [ebp + 0x4c], 0x80
jl 0x445f68
mov esi, dword [ebp + 0x4c]
and esi, 7
push esi
lea eax, [ebp - 0x5c]
push eax
push ebx
call fcn.0044dc10
mov eax, dword [ebp + 0x38]
add esp, 0xc
add ebx, esi
jmp 0x445f7e
mov cl, byte [ebp + 0x4c]
mov byte [ebx], cl
mov ecx, dword [ebp + 0x40]
inc ebx
test ecx, ecx
jl 0x445f7e
mov byte [ebx], cl
mov cl, byte [ebp + 0x34]
inc ebx
mov byte [ebx], cl
inc ebx
add al, 0x19
jmp 0x445fdc
mov ecx, dword [ebp + 0x20]
cmp dword [ebp + 0x28], ecx
je 0x445ff2
cmp dword [ebp + 0x1c], 0
je 0x445fb4
cmp dword [ebp + 0x4c], 0x80
jl 0x445fb4
mov esi, dword [ebp + 0x4c]
and esi, 7
push esi
lea eax, [ebp - 0x5c]
push eax
push ebx
call fcn.0044dc10
mov eax, dword [ebp + 0x38]
add esp, 0xc
add ebx, esi
jmp 0x445fba
mov cl, byte [ebp + 0x4c]
mov byte [ebx], cl
inc ebx
cmp dword [ebp + 0x40], 0
mov ecx, dword [ebp + 0x28]
jl 0x445fcf
mov dl, byte [ebp + 0x40]
mov byte [ebx], dl
mov dl, byte [ebp + 0x34]
inc ebx
mov byte [ebx], dl
inc ebx
sub ecx, dword [ebp + 0x20]
cmp ecx, 1
mov dword [ebp + 0x28], ecx
jne 0x445fe1
add al, 0x1d
mov byte [ebx], al
inc ebx
jmp 0x445ff2
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
cmp dword [ebp + 0x1c], 0
je 0x446019
cmp dword [ebp + 0x4c], 0x80
jl 0x446019
mov esi, dword [ebp + 0x4c]
and esi, 7
push esi
lea eax, [ebp - 0x5c]
push eax
push ebx
call fcn.0044dc10
add esp, 0xc
add ebx, esi
jmp 0x44601f
mov al, byte [ebp + 0x4c]
mov byte [ebx], al
inc ebx
mov esi, dword [ebp + 0x18]
cmp dword [ebp + 0x3c], 0
je 0x446112
mov al, byte [esi]
cmp al, 0x21
je 0x44603a
cmp al, 0x3b
je 0x44603a
cmp al, 0x2e
jne 0x446049
movzx eax, al
movzx eax, byte [eax + 0x464688]
add esi, eax
mov dword [ebp + 0x18], esi
mov eax, ebx
sub eax, esi
test eax, eax
mov dword [ebp + 0x24], eax
jle 0x446112
movzx eax, byte [esi]
cmp eax, 0x2a
jg 0x4460a8
je 0x4460a3
sub eax, 0x19
je 0x44609e
push 2
pop ecx
sub eax, ecx
je 0x446099
sub eax, ecx
je 0x446094
sub eax, ecx
je 0x44608f
sub eax, 7
je 0x446087
sub eax, ecx
jne 0x4460be
mov byte [esi], 0x30
jmp 0x446112
mov byte [esi], 0x2f
jmp 0x446112
mov byte [esi], 0x25
jmp 0x446112
mov byte [esi], 0x24
jmp 0x446112
mov byte [esi], 0x23
jmp 0x446112
mov byte [esi], 0x22
jmp 0x446112
mov byte [esi], 0x31
jmp 0x446112
sub eax, 0x2c
je 0x44610f
sub eax, 7
je 0x44610a
dec eax
dec eax
je 0x446105
dec eax
dec eax
je 0x446100
dec eax
dec eax
je 0x4460fb
push dword [ebp + 0x24]
push esi
add esi, 3
push esi
call fcn.0044ef20
mov eax, dword [ebp + 0x18]
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 + 0x18]
mov byte [edx + 1], al
mov eax, dword [ebp + 0x18]
inc ebx
inc ebx
mov byte [eax + 2], cl
jmp 0x446112
mov byte [esi], 0x3f
jmp 0x446112
mov byte [esi], 0x3e
jmp 0x446112
mov byte [esi], 0x3d
jmp 0x446112
mov byte [esi], 0x3c
jmp 0x446112
mov byte [esi], 0x32
mov edi, dword [ebp + 0x78]
mov eax, dword [ebp - 0x68]
and dword [ebp + 0x48], 0
or dword [edi + 0x40], eax
jmp 0x444c5c
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x34
jmp 0x44627b
mov eax, dword [ebp + 0x68]
inc dword [ebp + 0x50]
mov dword [eax], 0x1c
jmp 0x44627b
mov eax, dword [ebp + 0x68]
dec ecx
mov dword [ebp + 0x50], ecx
mov dword [eax], 0x1a
jmp 0x44627b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xf
jmp 0x44627b
mov eax, dword [ebp + 0x68]
dec dword [ebp + 0x50]
mov dword [eax], 0xc
jmp 0x44627b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x27
jmp 0x44627b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x26
jmp 0x44627b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2a
jmp 0x44627b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x31
jmp 0x44627b
mov eax, dword [ebp + 0x68]
inc esi
mov dword [ebp + 0x50], esi
mov dword [eax], 0x18
jmp 0x44627b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x36
jmp 0x44627b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1b
jmp 0x44627b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xe
jmp 0x44627b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x28
jmp 0x44627b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2d
jmp 0x44627b
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 0x44627b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1f
jmp 0x44627b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1e
jmp 0x44627b
mov eax, edi
mov dword [eax], 7
jmp 0x44627b
mov eax, dword [ebp + 0x68]
mov dword [eax], 8
jmp 0x44627b
mov eax, dword [ebp + 0x68]
mov dword [eax], 6
jmp 0x44627b
mov eax, dword [ebp + 0x68]
mov dword [eax], 9
jmp 0x44627b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xb
jmp 0x44627b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x37
jmp 0x44627b
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