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

Disassembly:
push ebp
lea ebp, [esp - 0x54]
sub esp, 0xe0
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 + 0x18], eax
mov dword [ebp + 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], eax
mov dword [ebp + 8], eax
mov dword [ebp - 0x54], eax
mov dword [ebp + 0x48], eax
mov dword [ebp], eax
mov dword [ebp - 8], 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 - 0x68], eax
xor eax, ecx
mov dword [ebp - 0x64], eax
push 0xfffffffffffffffe
pop eax
mov dword [ebp - 4], eax
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x24], eax
mov eax, edx
and eax, ecx
shl eax, 8
mov dword [ebp + 0x2c], edx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp + 0x50], esi
mov dword [ebp - 0x18], eax
movzx eax, byte [esi]
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
mov dword [ebp + 0x4c], eax
je 0x445616
mov eax, dword [edi + 0x10]
add eax, 0x1000
cmp ebx, eax
ja 0x447ab7
cmp ebx, dword [ebp - 0x14]
jae 0x4455bb
mov ebx, dword [ebp - 0x14]
mov eax, dword [ecx]
mov ecx, ebx
sub ecx, dword [ebp - 0x14]
mov edx, 0x7fffffeb
sub edx, eax
cmp edx, ecx
jl 0x447c22
sub eax, dword [ebp - 0x14]
mov ecx, dword [ebp + 0x7c]
add eax, ebx
mov dword [ecx], eax
mov eax, dword [ebp + 0x48]
test eax, eax
je 0x44560b
cmp eax, dword [ebp - 0x58]
jbe 0x44560e
mov esi, dword [ebp - 0x58]
mov eax, ebx
sub eax, dword [ebp + 0x48]
push eax
push dword [ebp + 0x48]
push esi
call fcn.004517f0
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 0x44560e
mov ebx, dword [ebp - 0x58]
mov eax, dword [ebp + 0x4c]
mov dword [ebp - 0x14], ebx
jmp 0x445628
mov ecx, dword [edi + 0x10]
add ecx, 0x1000
cmp dword [edi + 0x20], ecx
ja 0x447ab7
xor ecx, ecx
cmp dword [ebp + 8], ecx
je 0x445689
cmp eax, ecx
je 0x445689
cmp eax, 0x5c
jne 0x44564b
lea eax, [esi + 1]
cmp byte [eax], 0x45
jne 0x44564b
mov dword [ebp + 8], ecx
mov dword [ebp + 0x50], eax
jmp 0x447aac
cmp dword [ebp], ecx
je 0x445667
cmp dword [ebp + 0x7c], ecx
jne 0x445663
mov ecx, dword [ebp]
push edi
mov eax, esi
call fcn.00444e17
add esp, 4
and dword [ebp], 0
test word [ebp + 0x2c], 0x4000
je 0x446296
mov ecx, dword [ebp + 0x50]
mov esi, edi
mov eax, ebx
mov dword [ebp], ebx
call fcn.00444df3
mov ebx, eax
jmp 0x446296
cmp eax, 0x2a
je 0x4456fb
cmp eax, 0x2b
je 0x4456fb
cmp eax, 0x3f
je 0x4456fb
cmp eax, 0x7b
jne 0x4456a9
lea eax, [esi + 1]
call fcn.004444fb
test eax, eax
jne 0x4456fb
and dword [ebp + 0x44], 0
cmp dword [ebp], 0
je 0x4456d8
mov eax, dword [ebp - 0x24]
dec dword [ebp - 0x24]
test eax, eax
jg 0x4456d8
cmp dword [ebp + 0x7c], 0
jne 0x4456d4
mov ecx, dword [ebp]
push edi
mov eax, esi
call fcn.00444e17
mov esi, dword [ebp + 0x50]
add esp, 4
and dword [ebp], 0
test byte [ebp + 0x2c], 8
je 0x44574e
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp + 0x4c]
test byte [ecx + eax], 1
jne 0x447aac
cmp ecx, 0x23
mov esi, dword [ebp + 0x50]
jne 0x44574e
jmp 0x4457e2
mov dword [ebp + 0x44], 1
jmp 0x4456d8
mov ecx, dword [edi + 0x4c]
test ecx, ecx
je 0x4457bc
mov eax, dword [edi + 0x1c]
cmp esi, eax
jae 0x4457e2
push dword [ebp + 0x1c]
lea edx, [edi + 0x50]
push edx
push eax
push ecx
push esi
call fcn.0044d6b0
mov esi, dword [ebp + 0x50]
add esp, 0x14
test eax, eax
je 0x4457e2
mov eax, dword [edi + 0x50]
lea esi, [esi + eax - 1]
mov dword [ebp + 0x50], esi
cmp byte [esi], 0
jne 0x447aac
and dword [ebp + 0x4c], 0
xor edx, edx
test word [ebp + 0x2c], 0x4000
je 0x445773
cmp dword [ebp + 0x44], edx
jne 0x445773
mov ecx, dword [ebp + 0x50]
mov esi, edi
mov eax, ebx
mov dword [ebp], ebx
call fcn.00444df3
mov esi, dword [ebp + 0x50]
mov ebx, eax
xor edx, edx
mov eax, dword [ebp + 0x4c]
cmp eax, 0x2e
jg 0x446222
je 0x446201
sub eax, edx
je 0x44624b
sub eax, 0x24
je 0x4461f6
sub eax, 4
je 0x4457fe
dec eax
je 0x44624b
dec eax
je 0x4457f5
dec eax
jne 0x446296
or dword [ebp + 0x28], 0xffffffff
mov dword [ebp + 0x18], 1
jmp 0x447253
mov ecx, dword [edi + 0x50]
mov edx, dword [edi + 0x1c]
sub edx, ecx
cmp esi, edx
ja 0x4457e2
cmp al, byte [edi + 0x54]
jne 0x4457e2
cmp ecx, 1
je 0x445737
mov al, byte [esi + 1]
cmp al, byte [edi + 0x55]
je 0x445737
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
jne 0x445704
jmp 0x44574a
or dword [ebp + 0x28], 0xffffffff
jmp 0x447250
mov eax, dword [ebp + 0x2c]
mov dword [ebp + 0x30], eax
mov eax, dword [edi + 0x20]
inc esi
mov dword [ebp - 8], eax
mov dword [ebp + 0x50], esi
mov al, byte [esi]
cmp al, 0x2a
mov dword [ebp + 0x44], edx
mov dword [ebp + 0x38], 0x5e
mov dword [ebp + 4], edx
jne 0x4458e7
mov ecx, dword [edi + 0xc]
lea edx, [esi + 1]
mov dword [ebp + 0x40], edx
movzx edx, byte [edx]
test byte [edx + ecx], 2
je 0x4458e7
mov esi, dword [ebp + 0x40]
and dword [ebp + 0x48], 0
mov dword [ebp + 0x44], str.ACCEPT
mov dword [ebp + 0x34], esi
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + ecx], 2
jne 0x44584c
mov al, byte [esi]
cmp al, 0x3a
je 0x447ac5
cmp al, 0x29
jne 0x4458d9
sub esi, dword [ebp + 0x34]
xor eax, eax
cmp dword [0x471038], eax
mov dword [ebp + 0x40], eax
jle 0x4458d9
cmp esi, dword [eax*8 + section..data]
jne 0x445896
push esi
push dword [ebp + 0x44]
push dword [ebp + 0x34]
call fcn.0044e51f
add esp, 0xc
test eax, eax
mov eax, dword [ebp + 0x40]
je 0x4458b5
mov ecx, dword [eax*8 + section..data]
mov edx, dword [ebp + 0x44]
inc eax
cmp eax, dword [0x471038]
lea ecx, [edx + ecx + 1]
mov dword [ebp + 0x44], ecx
mov dword [ebp + 0x40], eax
jl 0x445877
jmp 0x4458ca
mov al, byte [eax*8 + 0x471004]
mov byte [ebx], al
inc ebx
cmp al, 0x6d
jne 0x4458ca
mov dword [edi + 0x48], 1
mov eax, dword [ebp + 0x40]
cmp eax, dword [0x471038]
jl 0x447aac
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3c
jmp 0x447c2b
cmp al, 0x3f
jne 0x44607f
inc esi
mov dword [ebp + 0x50], esi
mov dl, byte [esi]
movzx eax, dl
cmp eax, 0x3a
jg 0x445c41
je 0x445c7e
cmp eax, 0x28
jg 0x445c24
je 0x4459ba
sub eax, 0x21
je 0x44596e
dec eax
dec eax
je 0x44593f
sub eax, 3
je 0x445930
dec eax
je 0x445f1d
jmp 0x445d0d
push 0x29
pop ecx
mov dword [ebp + 0x44], 1
jmp 0x4463dd
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
je 0x445960
cmp al, 0x29
je 0x445957
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
jne 0x445949
cmp byte [esi], 0
jne 0x447aac
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x12
jmp 0x447c2b
inc esi
mov dword [ebp + 0x50], esi
cmp byte [esi], 0x29
jne 0x445984
mov byte [ebx], 0x6c
inc ebx
and dword [ebp + 0x48], 0
jmp 0x447aac
mov dword [ebp + 0x38], 0x58
and dword [ebp + 0x48], 0
mov eax, dword [ebp + 0x38]
mov byte [ebx], al
mov ecx, dword [edi + 0x44]
and dword [ebp - 0x10], 0
cmp eax, 0x59
mov dword [ebp + 0x14], ebx
mov dword [ebp + 0x40], ecx
je 0x446090
cmp eax, 0x5a
je 0x446090
xor eax, eax
jmp 0x446093
cmp byte [esi + 1], 0x3f
mov dword [ebp + 0x38], 0x5f
jne 0x4459e2
mov al, byte [esi + 2]
cmp al, 0x3d
je 0x446060
cmp al, 0x21
je 0x446060
cmp al, 0x3c
je 0x446060
or dword [ebp + 0x40], 0xffffffff
mov byte [ebx + 3], 0x63
mov esi, dword [ebp + 0x50]
lea eax, [esi + 1]
mov cl, byte [eax]
cmp cl, 0x52
mov dword [ebp + 0x44], 3
jne 0x445a13
add esi, 2
cmp byte [esi], 0x26
jne 0x445a13
or dword [ebp + 0x34], 0xffffffff
mov dword [ebp + 0x50], esi
mov byte [ebx + 3], 0x64
jmp 0x445a49
cmp cl, 0x3c
jne 0x445a21
mov dword [ebp + 0x34], 0x3e
jmp 0x445a2d
cmp cl, 0x27
jne 0x445a32
mov dword [ebp + 0x34], 0x27
mov dword [ebp + 0x50], eax
jmp 0x445a49
and dword [ebp + 0x34], 0
cmp cl, 0x2d
je 0x445a40
cmp cl, 0x2b
jne 0x445a49
mov dword [ebp + 0x50], eax
movzx eax, byte [eax]
mov dword [ebp + 0x40], eax
mov esi, dword [ebp + 0x50]
mov ecx, dword [edi + 0xc]
inc esi
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
je 0x447ad3
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
xor edx, edx
test byte [ecx + eax], 0x10
mov dword [ebp + 0x4c], edx
mov dword [ebp + 0x20], esi
je 0x445a9a
test edx, edx
jl 0x445a8a
test byte [eax + 0x4663e0], 4
je 0x445a87
imul edx, edx, 0xa
lea edx, [edx + eax - 0x30]
jmp 0x445a8a
or edx, 0xffffffff
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [ecx + eax], 0x10
jne 0x445a71
mov dword [ebp + 0x4c], edx
mov eax, esi
sub eax, dword [ebp + 0x20]
cmp dword [ebp + 0x34], 0
mov dword [ebp + 0x48], eax
jle 0x445ab8
movzx eax, byte [esi]
inc esi
cmp eax, dword [ebp + 0x34]
mov dword [ebp + 0x50], esi
jne 0x447ae4
mov al, byte [esi]
inc esi
cmp al, 0x29
mov dword [ebp + 0x50], esi
jne 0x447ae4
cmp dword [ebp + 0x7c], 0
jne 0x446060
xor eax, eax
cmp dword [ebp + 0x40], eax
jle 0x445b0f
cmp edx, eax
jle 0x447af6
cmp dword [ebp + 0x40], 0x2d
jne 0x445aff
mov ecx, dword [edi + 0x30]
sub ecx, edx
inc ecx
mov edx, ecx
cmp edx, eax
jg 0x445b02
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xf
jmp 0x447c2b
add edx, dword [edi + 0x30]
mov eax, edx
sar eax, 8
mov byte [ebx + 5], dl
jmp 0x44605d
cmp dword [edi + 0x28], eax
mov ecx, dword [edi + 0x24]
mov dword [ebp + 0x40], ecx
mov dword [ebp + 0x3c], eax
jle 0x445b49
mov esi, ecx
push dword [ebp + 0x48]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x20]
call fcn.0044e51f
add esp, 0xc
test eax, eax
je 0x445b46
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x3c]
mov eax, dword [ebp + 0x3c]
cmp eax, dword [edi + 0x28]
mov dword [ebp + 0x40], esi
jl 0x445b1f
mov esi, dword [ebp + 0x50]
mov eax, dword [ebp + 0x3c]
cmp eax, dword [edi + 0x28]
jge 0x445b6c
mov eax, dword [ebp + 0x40]
movzx ecx, byte [eax + 1]
mov ch, byte [eax]
mov eax, ecx
mov ecx, eax
sar ecx, 8
mov byte [ebx + 4], cl
mov byte [ebx + 5], al
jmp 0x446060
mov eax, dword [ebp + 0x2c]
shr eax, 3
and eax, 1
push eax
push dword [ebp + 0x48]
mov eax, dword [edi + 0x30]
push dword [ebp + 0x20]
mov ecx, esi
call fcn.004445f2
add esp, 0xc
test eax, eax
jg 0x445b5c
xor ecx, ecx
cmp dword [ebp + 0x34], ecx
jne 0x445af1
mov edx, dword [ebp + 0x20]
cmp byte [edx], 0x52
jne 0x445be0
xor esi, esi
inc esi
cmp dword [ebp + 0x48], esi
jle 0x445bca
movzx eax, byte [esi + edx]
test byte [eax + 0x4663e0], 4
je 0x445af1
imul ecx, ecx, 0xa
inc esi
cmp esi, dword [ebp + 0x48]
lea ecx, [ecx + eax - 0x30]
jl 0x445ba8
test ecx, ecx
jne 0x445bcf
mov ecx, 0xffff
mov eax, ecx
mov byte [ebx + 3], 0x64
sar eax, 8
mov byte [ebx + 5], cl
jmp 0x44605d
cmp dword [ebp + 0x48], 6
jne 0x445c0a
push 6
push str.DEFINE
push edx
call fcn.0044e51f
add esp, 0xc
test eax, eax
jne 0x445c0a
mov byte [ebx + 3], 0x65
mov dword [ebp + 0x44], 1
jmp 0x446060
mov eax, dword [ebp + 0x4c]
test eax, eax
jg 0x445b5c
neg eax
sbb eax, eax
and eax, 0xffffffec
add eax, 0x23
jmp 0x447bc3
cmp eax, 0x2b
je 0x445c92
cmp eax, 0x2d
je 0x445c92
cmp eax, 0x2f
jle 0x445d0d
cmp eax, 0x39
jle 0x445c92
jmp 0x445d0d
sub eax, 0x3c
je 0x445efa
dec eax
je 0x445eea
dec eax
je 0x445ede
sub eax, 5
je 0x445e73
sub eax, 0xd
je 0x445e39
dec eax
dec eax
je 0x445c8e
sub eax, 0x2a
jne 0x445d0d
mov dword [ebp + 4], 1
mov dword [ebp + 0x38], 0x5d
inc esi
mov dword [ebp + 0x50], esi
jmp 0x446060
inc esi
mov dword [ebp + 0x50], esi
mov dl, byte [esi]
movzx ecx, dl
cmp ecx, 0x2b
jne 0x445cfb
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
xor edx, edx
test byte [eax + 0x4663e0], 4
mov dword [ebp + 0x4c], edx
je 0x445ccb
imul edx, edx, 0xa
inc esi
lea edx, [edx + eax - 0x30]
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + 0x4663e0], 4
jne 0x445cb1
mov dword [ebp + 0x4c], edx
cmp byte [esi], 0x29
jne 0x447b15
cmp ecx, 0x2d
jne 0x445e1d
test edx, edx
je 0x447af6
mov eax, dword [edi + 0x30]
sub eax, edx
inc eax
test eax, eax
mov dword [ebp + 0x4c], eax
jle 0x445af1
jmp 0x4464ab
cmp ecx, 0x2d
jne 0x445ca0
inc esi
movzx eax, byte [esi]
test byte [eax + 0x4663e0], 4
jne 0x445c9d
xor eax, eax
xor esi, esi
cmp dl, 0x29
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x40], esi
lea ecx, [ebp + 0x40]
je 0x445d9c
cmp dl, 0x3a
je 0x445d96
inc dword [ebp + 0x50]
movzx eax, dl
cmp eax, 0x69
jg 0x445d6c
je 0x445d67
cmp eax, 0x2d
je 0x445d62
cmp eax, 0x4a
je 0x445d56
cmp eax, 0x55
je 0x445d4e
cmp eax, 0x58
jne 0x447b04
or dword [ecx], 0x40
jmp 0x445d8c
or dword [ecx], 0x200
jmp 0x445d8c
or dword [ecx], 0x80000
or dword [edi + 0x40], 0x10
jmp 0x445d8c
lea ecx, [ebp + 0x34]
jmp 0x445d8c
or dword [ecx], 1
jmp 0x445d8c
cmp eax, 0x6d
je 0x445d89
cmp eax, 0x73
je 0x445d84
cmp eax, 0x78
jne 0x447b04
or dword [ecx], 8
jmp 0x445d8c
or dword [ecx], 4
jmp 0x445d8c
or dword [ecx], 2
mov eax, dword [ebp + 0x50]
mov dl, byte [eax]
cmp dl, 0x29
jne 0x445d1f
mov esi, dword [ebp + 0x40]
mov eax, dword [ebp + 0x34]
or esi, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x50]
not eax
and esi, eax
cmp byte [ecx], 0x29
mov eax, esi
mov dword [ebp + 0x30], eax
jne 0x445e0e
mov ecx, dword [edi + 0x14]
add ecx, 3
cmp ebx, ecx
jne 0x445dd1
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x445dc6
cmp dword [ecx], 6
jne 0x445dd1
mov dword [edi + 0x3c], eax
mov dword [ebp + 0x2c], eax
jmp 0x44597b
mov ecx, eax
xor ecx, dword [ebp + 0x2c]
test cl, 7
je 0x445de7
mov byte [ebx], 0x18
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 + 0x2c], eax
mov dword [ebp - 0x68], ecx
xor ecx, 1
and eax, 1
shl eax, 8
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x18], eax
jmp 0x44597b
inc dword [ebp + 0x50]
mov dword [ebp + 0x38], 0x5d
jmp 0x446060
cmp ecx, 0x2b
jne 0x4464ab
test edx, edx
je 0x447af6
add edx, dword [edi + 0x30]
mov dword [ebp + 0x4c], edx
jmp 0x4464ab
inc esi
mov dword [ebp + 0x50], esi
mov dl, byte [esi]
cmp dl, 0x3d
je 0x445e60
cmp dl, 0x3e
je 0x445e60
cmp dl, 0x3c
je 0x445f1d
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x29
jmp 0x447c2b
xor eax, eax
cmp dl, 0x3e
sete al
push 0x29
mov dword [ebp + 0x44], eax
pop ecx
jmp 0x4463dd
mov byte [ebx], 0x52
mov esi, dword [ebp + 0x50]
mov dword [ebp], ebx
inc ebx
mov dword [ebp - 0x24], 1
xor ecx, ecx
jmp 0x445e8f
imul ecx, ecx, 0xa
lea ecx, [ecx + eax - 0x30]
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + 0x4663e0], 4
jne 0x445e88
cmp byte [esi], 0x29
jne 0x447b23
cmp ecx, 0xff
jg 0x447b31
mov byte [ebx], cl
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
jmp 0x44597b
mov dword [ebp + 0x38], 0x5c
jmp 0x445c85
mov dword [ebp + 0x38], 0x57
inc esi
mov dword [ebp + 0x50], esi
jmp 0x44598b
mov al, byte [esi + 1]
cmp al, 0x21
je 0x446076
cmp al, 0x3d
je 0x446068
mov ecx, dword [edi + 0xc]
movzx eax, al
test byte [eax + ecx], 0x10
je 0x447b5b
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 + 0x34], eax
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
mov dword [ebp + 0x20], esi
je 0x445f51
mov eax, ecx
inc esi
mov dword [ebp + 0x50], esi
movzx ecx, byte [esi]
test byte [ecx + eax], 0x10
jne 0x445f44
mov eax, esi
sub eax, dword [ebp + 0x20]
cmp dword [ebp + 0x7c], 0
mov dword [ebp + 0x48], eax
je 0x445f9e
movzx ecx, byte [esi]
cmp ecx, dword [ebp + 0x34]
jne 0x447b3f
cmp dword [edi + 0x28], 0x2710
jge 0x447b4d
lea edx, [eax + 3]
cmp edx, dword [edi + 0x2c]
jle 0x446040
cmp eax, 0x20
mov dword [edi + 0x2c], edx
jle 0x446040
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x30
jmp 0x447c2b
and dword [ebp + 0x3c], 0
cmp dword [edi + 0x28], 0
mov esi, dword [edi + 0x24]
jle 0x446012
push dword [ebp + 0x48]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x20]
call fcn.0044e9fc
add esp, 0xc
test eax, eax
jne 0x445fe7
mov eax, dword [ebp + 0x48]
cmp byte [esi + eax + 2], 0
jne 0x445fe2
test dword [ebp + 0x2c], 0x80000
jne 0x445fe9
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2b
jmp 0x447c2b
or eax, 0xffffffff
test eax, eax
jl 0x445ff9
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x3c]
mov eax, dword [ebp + 0x3c]
cmp eax, dword [edi + 0x28]
jl 0x445fab
jmp 0x446012
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x2c]
sub ecx, dword [ebp + 0x3c]
imul ecx, eax
push ecx
add eax, esi
push esi
push eax
call fcn.004517f0
add esp, 0xc
mov eax, dword [edi + 0x30]
push dword [ebp + 0x48]
inc eax
push dword [ebp + 0x20]
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.00450220
mov eax, dword [ebp + 0x48]
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 + 0x44], 2
mov byte [ebx + 4], al
mov dword [ebp + 0x48], ebx
jmp 0x44598f
mov dword [ebp + 0x38], 0x59
inc esi
inc esi
jmp 0x445ef2
mov dword [ebp + 0x38], 0x5a
jmp 0x44606f
test word [ebp + 0x2c], 0x1000
je 0x446047
mov dword [ebp + 0x38], 0x5d
jmp 0x446060
xor eax, eax
inc eax
mov ecx, dword [ebp + 0x7c]
neg ecx
sbb ecx, ecx
lea edx, [ebp - 0x10]
and ecx, edx
push ecx
push edi
push dword [ebp + 0x74]
lea ecx, [ebp - 0x1c]
push ecx
lea ecx, [ebp - 0x20]
push ecx
push dword [ebp + 0x44]
push dword [ebp + 4]
push eax
push dword [ebp + 0x68]
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x2c]
and eax, 7
push eax
push dword [ebp + 0x30]
call fcn.00447c3d
add esp, 0x34
test eax, eax
je 0x447c2b
mov ecx, dword [ebp + 0x38]
cmp ecx, 0x5f
jne 0x446123
xor esi, esi
cmp dword [ebp + 0x7c], esi
jne 0x446123
mov eax, ebx
xor edx, edx
mov dh, byte [eax + 1]
inc esi
mov dl, byte [eax + 2]
add eax, edx
cmp byte [eax], 0x54
jne 0x4460e9
cmp byte [ebx + 3], 0x65
jne 0x44610d
cmp esi, 1
jg 0x447b6d
push 0x65
pop ecx
jmp 0x446123
cmp esi, 2
jg 0x447b7b
cmp esi, 1
jne 0x446123
or dword [ebp - 0x1c], 0xffffffff
or dword [ebp - 0x20], 0xffffffff
mov eax, dword [ebp + 0x50]
cmp byte [eax], 0x29
jne 0x447b89
mov eax, dword [ebp + 0x7c]
xor edx, edx
cmp eax, edx
je 0x446177
mov eax, dword [eax]
mov ecx, dword [ebp - 0x10]
mov edx, 0x7fffffeb
sub edx, eax
lea esi, [ecx - 6]
cmp edx, esi
jl 0x447c22
lea eax, [eax + ecx - 6]
mov ecx, dword [ebp + 0x7c]
mov dword [ecx], eax
mov byte [ebx], 0x5d
inc ebx
mov byte [ebx], 0
mov byte [ebx + 1], 3
inc ebx
inc ebx
mov byte [ebx], 0x54
inc ebx
mov byte [ebx], 0
mov byte [ebx + 1], 3
inc ebx
inc ebx
jmp 0x447aac
cmp ecx, 0x65
mov ebx, dword [ebp + 0x14]
je 0x447aac
cmp ecx, 0x5c
mov eax, dword [ebp + 0x10]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x54], edx
jl 0x4461da
cmp eax, 0xfffffffe
jne 0x4461b9
mov eax, dword [ebp - 0x20]
cmp eax, edx
jl 0x4461af
mov dword [ebp + 0x24], eax
mov dword [ebp - 0x54], 1
jmp 0x4461b3
or dword [ebp + 0x24], 0xffffffff
or dword [ebp + 0xc], 0xffffffff
jmp 0x4461cc
cmp dword [ebp - 0x20], edx
jl 0x4461cc
cmp dword [ebp - 0x1c], edx
jge 0x4461d5
mov eax, dword [ebp + 0x40]
or eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], edx
jl 0x447aac
mov eax, dword [ebp - 0x1c]
jmp 0x4461ee
cmp ecx, 0x57
jne 0x447aac
mov eax, dword [ebp - 0x1c]
cmp eax, edx
jl 0x447aac
mov dword [ebp + 0x10], eax
jmp 0x447aac
mov dword [ebp + 0x48], edx
mov byte [ebx], 0x1a
jmp 0x446626
cmp dword [ebp + 0x24], 0xfffffffe
jne 0x44620b
or dword [ebp + 0x24], 0xffffffff
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 4], eax
mov dword [ebp + 0x48], ebx
mov byte [ebx], 0xc
jmp 0x446626
sub eax, 0x3f
je 0x447249
sub eax, 0x1c
je 0x446649
dec eax
je 0x446318
dec eax
dec eax
je 0x4462fd
sub eax, 0x1d
je 0x446291
dec eax
jne 0x446296
mov eax, dword [ebp + 0x6c]
mov ecx, dword [ebp + 0x24]
mov dword [eax], ecx
mov eax, dword [ebp + 0x70]
mov ecx, dword [ebp + 0x10]
mov dword [eax], ecx
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x7c]
cmp ecx, edx
mov dword [eax], ebx
mov eax, dword [ebp + 0x64]
mov dword [eax], esi
je 0x446289
mov eax, dword [ecx]
mov edx, ebx
sub edx, dword [ebp - 0x14]
mov esi, 0x7fffffeb
sub esi, eax
cmp esi, edx
jl 0x447c22
sub eax, dword [ebp - 0x14]
add eax, ebx
mov dword [ecx], eax
xor eax, eax
inc eax
jmp 0x447c35
cmp dword [ebp + 0x44], edx
jne 0x4462d3
mov al, byte [ebp + 0x4c]
xor esi, esi
inc esi
cmp dword [ebp + 0x1c], 0
mov byte [ebp - 0x2c], al
je 0x447151
cmp dword [ebp + 0x4c], 0xc0
jl 0x447151
mov ecx, dword [ebp + 0x50]
jmp 0x4462c5
mov dword [ebp + 0x50], ecx
mov al, byte [ecx]
mov byte [ebp + esi - 0x2c], al
inc esi
inc ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x4462bb
jmp 0x447151
push dword [ebp + 0x68]
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x18]
push eax
lea eax, [esi + 1]
call fcn.0044455d
mov dword [ebp + 0x50], eax
mov eax, dword [ebp + 0x68]
add esp, 0xc
cmp dword [eax], 0
jne 0x447c2b
jmp 0x447253
test byte [ebp + 0x2c], 2
je 0x44630d
cmp dword [ebp + 0x24], 0xfffffffe
jne 0x44630d
or dword [ebp + 0x24], 0xffffffff
mov dword [ebp + 0x48], edx
mov byte [ebx], 0x19
jmp 0x446626
push 0
push dword [ebp + 0x2c]
lea eax, [ebp + 0x50]
push dword [edi + 0x30]
mov dword [ebp - 0x30], esi
push dword [ebp + 0x68]
push eax
call fcn.004441a8
mov ecx, dword [ebp + 0x68]
add esp, 0x14
cmp dword [ecx], 0
jne 0x447c2b
test eax, eax
jge 0x44662c
mov ecx, eax
neg ecx
cmp ecx, 0x19
jne 0x446370
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x5c
jne 0x446364
add eax, 2
cmp byte [eax], 0x45
je 0x445643
mov dword [ebp + 8], 1
jmp 0x447aac
cmp ecx, 0x18
je 0x447aac
cmp dword [ebp + 0x24], 0xfffffffe
jne 0x44638d
cmp ecx, 5
jle 0x44638d
cmp ecx, 0x16
jge 0x44638d
or dword [ebp + 0x24], 0xffffffff
cmp ecx, 0x1a
mov edx, dword [ebp + 0x24]
mov dword [ebp + 0xc], edx
mov edx, dword [ebp + 0x10]
mov dword [ebp - 4], edx
jne 0x4465a6
mov esi, dword [ebp + 0x50]
inc esi
mov dl, byte [esi]
cmp dl, 0x3c
je 0x4463bb
cmp dl, 0x27
je 0x4463bb
cmp dl, 0x7b
jne 0x4465a6
and dword [ebp + 0x44], 0
mov dword [ebp + 0x50], esi
mov al, byte [esi]
cmp al, 0x3c
jne 0x4463cf
push 0x3e
jmp 0x445e6d
xor ecx, ecx
cmp al, 0x27
setne cl
dec ecx
and ecx, 0xffffffaa
add ecx, 0x7d
mov edx, dword [edi + 0xc]
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + edx], 0x10
mov dword [ebp + 0x20], esi
je 0x4463ff
mov eax, edx
inc esi
mov dword [ebp + 0x50], esi
movzx edx, byte [esi]
test byte [edx + eax], 0x10
jne 0x4463f2
mov eax, esi
sub eax, dword [ebp + 0x20]
cmp dword [ebp + 0x7c], 0
mov dword [ebp + 0x48], eax
je 0x446427
movzx edx, byte [esi]
cmp edx, ecx
jne 0x447b3f
cmp eax, 0x20
jg 0x445f90
and dword [ebp + 0x4c], 0
jmp 0x4464a1
mov eax, dword [edi + 0x24]
and dword [ebp + 0x3c], 0
cmp dword [edi + 0x28], 0
mov dword [ebp + 0x40], eax
jle 0x446463
mov esi, eax
push dword [ebp + 0x48]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x20]
call fcn.0044e51f
add esp, 0xc
test eax, eax
je 0x446460
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x3c]
mov eax, dword [ebp + 0x3c]
cmp eax, dword [edi + 0x28]
mov dword [ebp + 0x40], esi
jl 0x446439
mov esi, dword [ebp + 0x50]
mov eax, dword [ebp + 0x3c]
cmp eax, dword [edi + 0x28]
jge 0x446479
mov eax, dword [ebp + 0x40]
movzx ecx, byte [eax + 1]
mov ch, byte [eax]
mov dword [ebp + 0x4c], ecx
jmp 0x4464a1
mov eax, dword [ebp + 0x2c]
shr eax, 3
and eax, 1
push eax
push dword [ebp + 0x48]
mov eax, dword [edi + 0x30]
push dword [ebp + 0x20]
mov ecx, esi
call fcn.004445f2
add esp, 0xc
test eax, eax
mov dword [ebp + 0x4c], eax
jle 0x445af1
cmp dword [ebp + 0x44], 0
je 0x4465b3
cmp dword [ebp + 0x7c], 0
mov eax, dword [edi + 0x14]
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x40], eax
jne 0x446559
cmp dword [ebp + 0x4c], 0
mov byte [ebx], 0
je 0x4464da
push dword [ebp + 0x4c]
mov eax, dword [edi + 0x14]
push dword [ebp + 0x1c]
call fcn.004449b2
pop ecx
pop ecx
mov dword [ebp + 0x40], eax
test eax, eax
jne 0x446530
mov eax, dword [ebp + 0x2c]
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.004445f2
add esp, 0xc
test eax, eax
jl 0x445af1
mov eax, dword [edi + 0x14]
mov ecx, dword [ebp + 0x4c]
add ecx, eax
mov dword [ebp + 0x40], 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 0x446556
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
test ecx, ecx
jne 0x446559
push dword [ebp + 0x1c]
mov eax, dword [ebp + 0x74]
push ebx
push dword [ebp + 0x40]
call fcn.00444cbc
add esp, 0xc
test eax, eax
jne 0x447b97
mov eax, dword [ebp + 0x40]
mov byte [ebx], 0x5c
mov byte [ebx + 1], 0
mov byte [ebx + 2], 6
add ebx, 3
mov byte [ebx], 0x51
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], 0x54
mov byte [ebx + 1], 0
mov byte [ebx + 2], 6
add ebx, 3
cmp dword [ebp + 0x24], 0xfffffffe
mov dword [ebp - 0x10], 9
jne 0x447aac
or dword [ebp + 0x24], 0xffffffff
jmp 0x447aac
cmp ecx, 0x1b
jl 0x4465f4
push 0xffffffffffffffe5
pop ecx
sub ecx, eax
mov dword [ebp + 0x4c], ecx
cmp dword [ebp + 0x24], 0xfffffffe
jne 0x4465bd
or dword [ebp + 0x24], 0xffffffff
mov ecx, dword [ebp + 0x4c]
mov byte [ebx], 0x50
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 0x4465dd
shl eax, cl
or dword [edi + 0x38], eax
cmp ecx, dword [edi + 0x34]
jle 0x447aac
mov eax, dword [ebp + 0x4c]
mov dword [edi + 0x34], eax
jmp 0x447aac
cmp ecx, 0x15
je 0x447ba5
cmp ecx, 0xe
je 0x447ba5
cmp ecx, 0xf
je 0x447ba5
cmp ecx, 5
jle 0x44661e
cmp ecx, 0x16
jge 0x44661e
mov dword [ebp + 0x48], ebx
jmp 0x446622
and dword [ebp + 0x48], 0
neg al
mov byte [ebx], al
inc ebx
jmp 0x447aac
cmp dword [ebp + 0x1c], 0
je 0x44714b
cmp eax, 0x7f
jle 0x44714b
lea ecx, [ebp - 0x2c]
push ecx
push eax
jmp 0x447140
mov al, byte [esi + 1]
cmp al, 0x3a
mov dword [ebp + 0x48], ebx
je 0x44665b
cmp al, 0x2e
je 0x44665b
cmp al, 0x3d
jne 0x446674
lea eax, [ebp - 0x30]
push eax
mov ecx, edi
mov eax, esi
call fcn.00444cee
test eax, eax
pop ecx
jne 0x447bb0
mov esi, dword [ebp + 0x50]
and dword [ebp + 0x20], 0
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
cmp eax, 0x5c
mov dword [ebp + 0x4c], eax
jne 0x4466a9
inc esi
cmp byte [esi], 0x45
je 0x446678
push 3
push 0x4664f0
push esi
call fcn.0044e51f
add esp, 0xc
test eax, eax
jne 0x4466bd
mov esi, dword [ebp + 0x50]
add esi, 3
jmp 0x446678
cmp dword [ebp + 0x20], 0
jne 0x4466bd
cmp eax, 0x5e
jne 0x4466bd
mov dword [ebp + 0x20], 1
jmp 0x446678
or dword [ebp + 0xc], 0xffffffff
xor esi, esi
push 0x20
lea eax, [ebp - 0x50]
push esi
push eax
mov dword [ebp + 0x38], esi
call fcn.00450c80
add esp, 0xc
cmp dword [ebp + 0x4c], 0
mov dword [ebp + 0x34], esi
lea esi, [ebx + 4]
je 0x447bf6
cmp dword [ebp + 0x1c], 0
je 0x446752
cmp dword [ebp + 0x4c], 0x7f
jle 0x446752
mov eax, dword [ebp + 0x50]
movzx eax, byte [eax]
cmp eax, 0xc0
mov dword [ebp + 0x4c], eax
jl 0x446752
and eax, 0x3f
movzx eax, byte [eax + 0x466610]
mov ecx, eax
imul ecx, ecx, 6
mov dword [ebp + 0x30], eax
mov eax, dword [eax*4 + 0x4665f4]
and eax, dword [ebp + 0x4c]
xor edx, edx
shl eax, cl
inc edx
mov dword [ebp + 0x44], edx
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x30]
cmp eax, edx
jl 0x44674f
mov edx, dword [ebp + 0x44]
mov eax, dword [ebp + 0x50]
movzx eax, byte [edx + eax]
and eax, 0x3f
sub ecx, 6
shl eax, cl
or dword [ebp + 0x4c], eax
inc dword [ebp + 0x44]
mov eax, dword [ebp + 0x30]
cmp dword [ebp + 0x44], eax
jle 0x44672f
add dword [ebp + 0x50], eax
cmp dword [ebp + 8], 0
je 0x44677b
cmp dword [ebp + 0x4c], 0x5c
jne 0x446d5e
mov eax, dword [ebp + 0x50]
inc eax
cmp byte [eax], 0x45
jne 0x446d5e
and dword [ebp + 8], 0
mov dword [ebp + 0x50], eax
jmp 0x44705b
cmp dword [ebp + 0x4c], 0x5b
jne 0x4468e1
mov eax, dword [ebp + 0x50]
mov al, byte [eax + 1]
cmp al, 0x3a
je 0x44679b
cmp al, 0x2e
je 0x44679b
cmp al, 0x3d
jne 0x446d5e
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp + 0x50]
mov ecx, edi
call fcn.00444cee
test eax, eax
pop ecx
je 0x446d5e
mov eax, dword [edi + 8]
and dword [ebp + 0x30], 0
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x3a
jne 0x447bca
add dword [ebp + 0x50], 2
mov eax, dword [ebp + 0x50]
cmp byte [eax], 0x5e
jne 0x4467df
inc dword [ebp + 0x50]
mov dword [ebp + 0x30], 1
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp + 0x50]
push eax
push dword [ebp + 0x50]
call fcn.00444d24
test eax, eax
pop ecx
pop ecx
jl 0x447bd5
test byte [ebp + 0x2c], 1
je 0x446805
cmp eax, 2
jg 0x446805
xor eax, eax
imul eax, eax, 3
shl eax, 2
mov dword [ebp + 4], eax
mov eax, dword [eax + 0x465a78]
add eax, dword [ebp + 0x44]
push 0x20
push eax
lea eax, [ebp - 0x8c]
push eax
call fcn.00450220
mov ecx, dword [ebp + 4]
mov eax, dword [ecx + 0x465a7c]
mov ecx, dword [ecx + 0x465a80]
add esp, 0xc
test eax, eax
mov dword [ebp + 4], ecx
jl 0x44687e
test ecx, ecx
mov edx, dword [ebp + 0x44]
jl 0x446862
xor ecx, ecx
add eax, edx
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x44]
mov al, byte [eax + ecx]
or byte [ebp + ecx - 0x8c], al
inc ecx
cmp ecx, 0x20
jl 0x44684d
jmp 0x44687e
xor ecx, ecx
add eax, edx
mov dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x44]
mov al, byte [eax + ecx]
not al
and byte [ebp + ecx - 0x8c], al
inc ecx
cmp ecx, 0x20
jl 0x446869
mov eax, dword [ebp + 4]
test eax, eax
jge 0x446887
neg eax
cmp eax, 1
jne 0x446895
and byte [ebp - 0x8b], 0xc3
jmp 0x4468a1
cmp eax, 2
jne 0x4468a1
and byte [ebp - 0x81], 0x7f
xor eax, eax
cmp dword [ebp + 0x30], eax
je 0x4468bd
mov cl, byte [ebp + eax - 0x8c]
not cl
or byte [ebp + eax - 0x50], cl
inc eax
cmp eax, 0x20
jl 0x4468a8
jmp 0x4468ce
mov cl, byte [ebp + eax - 0x8c]
or byte [ebp + eax - 0x50], cl
inc eax
cmp eax, 0x20
jl 0x4468bd
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x38], 0xa
jmp 0x44705b
cmp dword [ebp + 0x4c], 0x5c
jne 0x446d5e
push 1
push dword [ebp + 0x2c]
lea eax, [ebp + 0x50]
push dword [edi + 0x30]
push dword [ebp + 0x68]
push eax
call fcn.004441a8
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x68]
add esp, 0x14
cmp dword [eax], 0
jne 0x447c2b
mov edx, dword [ebp + 0x4c]
neg edx
cmp edx, 5
jne 0x446927
mov dword [ebp + 0x4c], 8
jmp 0x446d5e
cmp edx, 0x15
jne 0x446938
mov dword [ebp + 0x4c], 0x58
jmp 0x446d5e
cmp edx, 0x10
jne 0x446949
mov dword [ebp + 0x4c], 0x52
jmp 0x446d5e
cmp edx, 0x19
jne 0x44696f
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x5c
jne 0x446963
add eax, 2
cmp byte [eax], 0x45
je 0x446773
mov dword [ebp + 8], 1
jmp 0x44705b
cmp edx, 0x18
je 0x44705b
cmp dword [ebp + 0x4c], 0
jge 0x446d5e
add dword [ebp + 0x38], 2
cmp dword [ebp + 0x7c], 0
mov eax, dword [edi + 8]
jne 0x446a8d
mov ecx, edx
sub ecx, 6
je 0x446a6c
dec ecx
je 0x446a4d
dec ecx
je 0x446a25
dec ecx
je 0x4469ff
dec ecx
je 0x4469db
dec ecx
je 0x4469b9
sub ecx, 0xd
jmp 0x446ac0
and dword [ebp + 0x4c], 0
mov edx, dword [ebp + 0x4c]
lea ecx, [ebp + edx - 0x50]
mov dl, byte [eax + edx + 0xa0]
or byte [ecx], dl
inc dword [ebp + 0x4c]
cmp dword [ebp + 0x4c], 0x20
jl 0x4469bd
jmp 0x44705b
and dword [ebp + 0x4c], 0
mov edx, dword [ebp + 0x4c]
lea ecx, [ebp + edx - 0x50]
mov dl, byte [eax + edx + 0xa0]
not dl
or byte [ecx], dl
inc dword [ebp + 0x4c]
cmp dword [ebp + 0x4c], 0x20
jl 0x4469df
jmp 0x44705b
mov dword [ebp + 0x40], eax
lea eax, [ebp - 0x50]
xor edx, edx
sub dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x40]
lea ecx, [ebp + edx - 0x50]
mov al, byte [ecx + eax]
or byte [ecx], al
inc edx
cmp edx, 0x20
jl 0x446a0a
and byte [ebp - 0x4f], 0xf7
jmp 0x44705b
mov dword [ebp + 0x40], eax
lea eax, [ebp - 0x50]
xor edx, edx
sub dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x40]
lea ecx, [ebp + edx - 0x50]
mov al, byte [ecx + eax]
not al
or byte [ecx], al
inc edx
cmp edx, 0x20
jl 0x446a30
or byte [ebp - 0x4f], 8
jmp 0x44705b
and dword [ebp + 0x4c], 0
mov edx, dword [ebp + 0x4c]
lea ecx, [ebp + edx - 0x50]
mov dl, byte [eax + edx + 0x40]
or byte [ecx], dl
inc dword [ebp + 0x4c]
cmp dword [ebp + 0x4c], 0x20
jl 0x446a51
jmp 0x44705b
and dword [ebp + 0x4c], 0
mov edx, dword [ebp + 0x4c]
lea ecx, [ebp + edx - 0x50]
mov dl, byte [eax + edx + 0x40]
not dl
or byte [ecx], dl
inc dword [ebp + 0x4c]
cmp dword [ebp + 0x4c], 0x20
jl 0x446a70
jmp 0x44705b
mov eax, dword [ebp + 0x4c]
cmp eax, 0xfffffff9
je 0x44705b
cmp eax, 0xfffffffa
je 0x44705b
cmp eax, 0xfffffff5
je 0x44705b
cmp eax, 0xfffffff6
je 0x44705b
cmp eax, 0xfffffff7
je 0x44705b
cmp eax, 0xfffffff8
je 0x44705b
cmp edx, 0x12
jne 0x446b67
or byte [ebp - 0x4f], 2
or byte [ebp - 0x4c], 1
or byte [ebp - 0x3c], 1
cmp dword [ebp + 0x1c], 0
je 0x44705b
mov byte [esi], 1
inc esi
push esi
push 0x1680
mov dword [ebp + 0x34], 1
call fcn.0044d853
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x180e
call fcn.0044d853
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x2000
call fcn.0044d853
add esi, eax
push esi
push 0x200a
call fcn.0044d853
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x202f
call fcn.0044d853
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x205f
call fcn.0044d853
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x3000
call fcn.0044d853
add esp, 0x38
add esi, eax
jmp 0x44705b
cmp edx, 0x11
jne 0x446c88
xor ecx, ecx
mov eax, ecx
dec eax
mov edx, 0xff
je 0x446b8d
sub eax, 3
je 0x446b86
sub eax, 0x10
jne 0x446b92
mov edx, 0xfe
jmp 0x446b92
mov edx, 0xfd
or byte [ebp + ecx - 0x50], dl
inc ecx
cmp ecx, 0x20
jl 0x446b72
cmp dword [ebp + 0x1c], 0
je 0x44705b
mov byte [esi], 2
inc esi
push esi
push 0x100
mov dword [ebp + 0x34], 1
call fcn.0044d853
add esi, eax
push esi
push 0x167f
call fcn.0044d853
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x1681
call fcn.0044d853
add esi, eax
push esi
push 0x180d
call fcn.0044d853
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x180f
call fcn.0044d853
add esi, eax
push esi
push 0x1fff
call fcn.0044d853
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x200b
call fcn.0044d853
add esi, eax
push esi
push 0x202e
call fcn.0044d853
add esi, eax
add esp, 0x40
mov byte [esi], 2
inc esi
push esi
push 0x2030
call fcn.0044d853
add esi, eax
push esi
push 0x205e
call fcn.0044d853
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x2060
call fcn.0044d853
add esi, eax
push esi
push 0x2fff
call fcn.0044d853
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x3001
call fcn.0044d853
add esi, eax
push esi
push bind
call fcn.0044d853
add esp, 0x30
jmp 0x446b60
cmp edx, 0x14
jne 0x446cca
or byte [ebp - 0x4f], 0x3c
or byte [ebp - 0x40], 0x20
cmp dword [ebp + 0x1c], 0
je 0x44705b
mov byte [esi], 2
inc esi
push esi
push 0x2028
mov dword [ebp + 0x34], 1
call fcn.0044d853
add esi, eax
push esi
push 0x2029
call fcn.0044d853
add esp, 0x10
jmp 0x446b60
cmp edx, 0x13
jne 0x446d47
xor eax, eax
mov edx, eax
dec edx
mov ecx, 0xff
je 0x446ce5
sub edx, 0xf
jne 0x446cea
add ecx, 0xffffffe0
jmp 0x446cea
mov ecx, 0xc3
or byte [ebp + eax - 0x50], cl
inc eax
cmp eax, 0x20
jl 0x446cd1
cmp dword [ebp + 0x1c], 0
je 0x44705b
mov byte [esi], 2
inc esi
push esi
push 0x100
mov dword [ebp + 0x34], 1
call fcn.0044d853
add esi, eax
push esi
push 0x2027
call fcn.0044d853
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x2029
call fcn.0044d853
add esi, eax
push esi
push bind
call fcn.0044d853
add esp, 0x20
jmp 0x446b60
test byte [ebp + 0x2c], 0x40
jne 0x447be0
mov eax, dword [ebp + 0x50]
movzx eax, byte [eax]
sub dword [ebp + 0x38], 2
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x50]
jmp 0x446d74
lea ecx, [eax + 2]
cmp byte [ecx], 0x45
jne 0x446d7a
and dword [ebp + 8], 0
mov eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax + 1], 0x5c
je 0x446d63
cmp dword [ebp + 0x4c], 0xd
mov dword [ebp + 4], eax
je 0x446d89
cmp dword [ebp + 0x4c], 0xa
jne 0x446d8d
or dword [edi + 0x40], 0x20
cmp dword [ebp + 8], 0
jne 0x446fd6
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x2d
jne 0x446fd6
push 2
pop ecx
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
jne 0x446dec
cmp byte [eax + 1], 0x45
jne 0x446dde
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
je 0x446db1
jmp 0x446dde
cmp byte [eax + 1], 0x51
jne 0x446dec
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
jne 0x446de5
cmp byte [eax + 1], 0x45
jne 0x446de5
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
je 0x446dc3
jmp 0x446dec
mov dword [ebp + 8], 1
mov al, byte [eax]
test al, al
je 0x446fd0
cmp dword [ebp + 8], 0
jne 0x446e04
cmp al, 0x5d
je 0x446fd0
cmp dword [ebp + 0x1c], 0
je 0x446e6c
movzx edx, al
cmp edx, 0xc0
mov dword [ebp + 0x3c], edx
jl 0x446e72
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x466610]
mov ecx, eax
imul ecx, ecx, 6
mov dword [ebp + 0x30], eax
mov eax, dword [eax*4 + 0x4665f4]
and eax, edx
shl eax, cl
xor edx, edx
inc edx
mov dword [ebp + 0x44], edx
mov dword [ebp + 0x3c], eax
mov eax, dword [ebp + 0x30]
cmp eax, edx
jl 0x446e67
mov edx, dword [ebp + 0x44]
mov eax, dword [ebp + 0x50]
movzx eax, byte [edx + eax]
and eax, 0x3f
sub ecx, 6
shl eax, cl
or dword [ebp + 0x3c], eax
inc dword [ebp + 0x44]
mov eax, dword [ebp + 0x30]
cmp dword [ebp + 0x44], eax
jle 0x446e47
add dword [ebp + 0x50], eax
jmp 0x446e72
movzx eax, al
mov dword [ebp + 0x3c], eax
cmp dword [ebp + 8], 0
jne 0x446ed7
cmp dword [ebp + 0x3c], 0x5c
jne 0x446ed7
push 1
push dword [ebp + 0x2c]
lea eax, [ebp + 0x50]
push dword [edi + 0x30]
push dword [ebp + 0x68]
push eax
call fcn.004441a8
mov dword [ebp + 0x3c], eax
mov eax, dword [ebp + 0x68]
add esp, 0x14
cmp dword [eax], 0
jne 0x447c2b
mov eax, dword [ebp + 0x3c]
test eax, eax
jge 0x446ed7
cmp eax, 0xfffffffb
jne 0x446eb9
mov dword [ebp + 0x3c], 8
jmp 0x446ed7
cmp eax, 0xffffffeb
jne 0x446ec7
mov dword [ebp + 0x3c], 0x58
jmp 0x446ed7
cmp eax, 0xfffffff0
jne 0x446fd0
mov dword [ebp + 0x3c], 0x52
mov eax, dword [ebp + 0x3c]
cmp eax, dword [ebp + 0x4c]
jl 0x447beb
je 0x446fd6
cmp eax, 0xd
je 0x446ef3
cmp eax, 0xa
jne 0x446ef7
or dword [edi + 0x40], 0x20
cmp dword [ebp + 0x1c], 0
je 0x446f4c
cmp eax, 0xff
jg 0x446f0f
test byte [ebp + 0x2c], 1
je 0x446f4c
cmp eax, 0x7f
jle 0x446f4c
mov byte [esi], 2
inc esi
push esi
push dword [ebp + 0x4c]
mov dword [ebp + 0x34], 1
call fcn.0044d853
add esi, eax
push esi
push dword [ebp + 0x3c]
call fcn.0044d853
add esp, 0x10
add esi, eax
test byte [ebp + 0x2c], 1
je 0x44705b
push 0x7f
pop eax
cmp dword [ebp + 0x4c], eax
jg 0x44705b
mov dword [ebp + 0x3c], eax
mov edx, dword [ebp + 0x38]
mov ecx, eax
sub ecx, dword [ebp + 0x4c]
cmp dword [ebp + 0x7c], 0
lea ecx, [edx + ecx + 1]
mov dword [ebp + 0x38], ecx
mov dword [ebp + 0xc], eax
jne 0x44705b
mov eax, dword [ebp + 0x3c]
cmp dword [ebp + 0x4c], eax
jg 0x44705b
mov eax, dword [ebp + 0x2c]
and eax, 1
mov dword [ebp + 0x30], eax
mov ecx, dword [ebp + 0x4c]
mov eax, ecx
cdq
and edx, 7
add eax, edx
and ecx, 7
mov dl, 1
shl dl, cl
sar eax, 3
lea eax, [ebp + eax - 0x50]
or byte [eax], dl
cmp dword [ebp + 0x30], 0
je 0x446fc0
mov eax, dword [edi + 4]
mov ecx, dword [ebp + 0x4c]
movzx ecx, byte [eax + ecx]
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 - 0x50]
or byte [eax], dl
inc dword [ebp + 0x4c]
mov eax, dword [ebp + 0x4c]
cmp eax, dword [ebp + 0x3c]
jle 0x446f7d
jmp 0x44705b
mov eax, dword [ebp + 4]
mov dword [ebp + 0x50], eax
cmp dword [ebp + 0x1c], 0
je 0x44700c
cmp dword [ebp + 0x4c], 0xff
jg 0x446ff1
test byte [ebp + 0x2c], 1
je 0x44700c
cmp dword [ebp + 0x4c], 0x7f
jle 0x44700c
mov byte [esi], 1
inc esi
push esi
push dword [ebp + 0x4c]
mov dword [ebp + 0x34], 1
call fcn.0044d853
pop ecx
pop ecx
jmp 0x446b60
mov ecx, dword [ebp + 0x4c]
mov eax, ecx
cdq
and edx, 7
add eax, edx
and ecx, 7
mov dl, 1
shl dl, cl
sar eax, 3
lea eax, [ebp + eax - 0x50]
or byte [eax], dl
test byte [ebp + 0x2c], 1
je 0x447052
mov eax, dword [edi + 4]
mov ecx, dword [ebp + 0x4c]
movzx ecx, byte [eax + ecx]
mov eax, ecx
cdq
and edx, 7
add eax, edx
mov dword [ebp + 0x4c], ecx
and ecx, 7
mov dl, 1
sar eax, 3
shl dl, cl
lea eax, [ebp + eax - 0x50]
or byte [eax], dl
mov eax, dword [ebp + 0x4c]
inc dword [ebp + 0x38]
mov dword [ebp + 0xc], eax
inc dword [ebp + 0x50]
mov eax, dword [ebp + 0x50]
movzx eax, byte [eax]
test eax, eax
mov dword [ebp + 0x4c], eax
je 0x447bf6
cmp eax, 0x5d
jne 0x4466e5
cmp dword [ebp + 8], 0
jne 0x4466e5
xor ecx, ecx
cmp dword [ebp + 0x38], 1
jne 0x4470a3
cmp dword [ebp + 0x34], ecx
jne 0x4470a3
cmp dword [ebp + 0x1c], ecx
je 0x447108
cmp dword [ebp + 0x20], ecx
je 0x447108
mov eax, dword [ebp + 0xc]
cmp eax, 0x80
jl 0x44710b
cmp dword [ebp + 0x24], 0xfffffffe
jne 0x4470ad
or dword [ebp + 0x24], 0xffffffff
cmp dword [ebp + 0x34], ecx
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 4], eax
je 0x447209
mov byte [esi], 0
mov byte [ebx], 0x4f
add ebx, 3
inc esi
cmp dword [ebp + 0x20], ecx
setne al
cmp dword [ebp + 0x38], ecx
mov byte [ebx], al
jle 0x4471ee
or al, 2
mov byte [ebx], al
inc ebx
mov eax, esi
sub eax, ebx
push eax
lea eax, [ebx + 0x20]
push ebx
push eax
call fcn.004517f0
push 0x20
lea eax, [ebp - 0x50]
push eax
push ebx
call fcn.00450220
add esp, 0x18
lea ebx, [esi + 0x20]
jmp 0x4471f0
mov eax, dword [ebp + 0xc]
cmp dword [ebp + 0x20], ecx
mov edx, dword [ebp + 0x10]
mov dword [ebp - 4], edx
je 0x44712f
cmp dword [ebp + 0x24], 0xfffffffe
jne 0x447120
or dword [ebp + 0x24], 0xffffffff
mov ecx, dword [ebp + 0x24]
mov byte [ebx], 0x1d
mov dword [ebp + 0xc], ecx
inc ebx
jmp 0x446624
cmp dword [ebp + 0x1c], ecx
je 0x44714b
cmp eax, 0x7f
jle 0x44714b
lea eax, [ebp - 0x2c]
push eax
push dword [ebp + 0xc]
call fcn.0044d853
pop ecx
mov esi, eax
pop ecx
jmp 0x447151
xor esi, esi
inc esi
mov byte [ebp - 0x2c], al
test byte [ebp + 0x2c], 1
mov dword [ebp + 0x48], ebx
setne al
add al, 0x1b
mov byte [ebx], al
inc ebx
xor eax, eax
test esi, esi
jle 0x447172
mov cl, byte [ebp + eax - 0x2c]
mov byte [ebx], cl
inc ebx
inc eax
cmp eax, esi
jl 0x447166
cmp byte [ebp - 0x2c], 0xd
je 0x44717e
cmp byte [ebp - 0x2c], 0xa
jne 0x447182
or dword [edi + 0x40], 0x20
mov eax, dword [ebp + 0x24]
cmp eax, 0xfffffffe
jne 0x4471c7
or dword [ebp + 0xc], 0xffffffff
cmp esi, 1
mov eax, dword [ebp + 0x10]
mov dword [ebp - 4], eax
je 0x4471a8
cmp dword [ebp - 0x18], 0
je 0x4471a8
or dword [ebp + 0x10], 0xffffffff
jmp 0x44659d
movzx eax, byte [ebp - 0x2c]
or eax, dword [ebp - 0x18]
cmp esi, 1
mov dword [ebp + 0x24], eax
je 0x447aac
movzx eax, byte [ebx - 1]
or eax, dword [edi + 0x44]
jmp 0x4461ee
cmp esi, 1
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 4], eax
je 0x4471df
cmp dword [ebp - 0x18], 0
jne 0x447aac
movzx eax, byte [ebx - 1]
or eax, dword [edi + 0x44]
or eax, dword [ebp - 0x18]
jmp 0x4461ee
mov ebx, esi
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 0x447aac
cmp dword [ebp + 0x20], ecx
je 0x44722e
mov byte [ebx], 0x4e
inc ebx
cmp dword [ebp + 0x7c], ecx
jne 0x447241
lea eax, [ebp - 0x50]
push 0x20
mov esi, ebx
sub eax, ebx
pop ecx
mov dl, byte [eax + esi]
not dl
mov byte [esi], dl
inc esi
dec ecx
jne 0x447221
jmp 0x447241
push 0x20
lea eax, [ebp - 0x50]
mov byte [ebx], 0x4d
push eax
inc ebx
push ebx
call fcn.00450220
add esp, 0xc
add ebx, 0x20
jmp 0x447aac
mov dword [ebp + 0x28], 1
mov dword [ebp + 0x18], edx
mov edx, dword [ebp + 0x48]
test edx, edx
je 0x447c01
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x447271
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 0x24], ecx
mov ecx, dword [ebp - 4]
mov dword [ebp + 0x10], ecx
sub eax, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x50]
neg eax
sbb eax, eax
and dword [ebp + 0x40], 0
and dword [ebp + 0x34], 0
and eax, 0x200
mov esi, edx
inc ecx
mov dword [ebp - 0x6c], eax
mov dword [ebp + 0x14], esi
mov al, byte [ecx]
cmp al, 0x2b
jne 0x4472a8
mov edx, dword [ebp + 0x48]
xor eax, eax
mov dword [ebp + 0x34], 1
mov dword [ebp + 0x50], ecx
jmp 0x4472b7
cmp al, 0x3f
jne 0x4472b4
mov eax, dword [ebp - 0x64]
mov dword [ebp + 0x50], ecx
jmp 0x4472b7
mov eax, dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x1b
mov dword [ebp + 0x3c], eax
je 0x44776c
cmp cl, 0x1c
je 0x44776c
cmp cl, 0x1d
jne 0x44730c
cmp dword [ebp + 0x34], 0
movzx eax, byte [edx + 1]
mov dword [ebp + 0x40], 0xd
mov dword [ebp + 0x4c], eax
jne 0x4477d1
cmp dword [ebp + 0x28], 0
jge 0x4477d1
push dword [ebp + 0x2c]
mov eax, dword [ebp + 0x50]
inc eax
push eax
push 0
push dword [ebp + 0x1c]
push dword [ebp + 0x4c]
push 0x1d
jmp 0x4477b7
cmp cl, 0x16
jae 0x447349
cmp dword [ebp + 0x34], 0
movzx eax, cl
mov dword [ebp + 0x40], 0x1a
mov dword [ebp + 0x4c], eax
jne 0x4477d1
cmp dword [ebp + 0x28], 0
jge 0x4477d1
push dword [ebp + 0x2c]
mov eax, dword [ebp + 0x50]
inc eax
push eax
push 0
push dword [ebp + 0x1c]
push 0
push dword [ebp + 0x4c]
jmp 0x4477b7
cmp cl, 0x4d
je 0x4476f2
cmp cl, 0x4e
je 0x4476f2
cmp cl, 0x4f
je 0x4476f2
cmp cl, 0x50
je 0x4476f2
cmp cl, 0x5d
je 0x447385
cmp cl, 0x5e
je 0x447385
cmp cl, 0x5c
je 0x447385
cmp cl, 0x5f
jne 0x447c0c
and dword [ebp + 4], 0
and dword [ebp + 0x20], 0
mov eax, ebx
sub eax, edx
cmp cl, 0x5f
mov dword [ebp + 0x38], eax
jne 0x4473a3
cmp byte [edx + 3], 0x65
je 0x447c17
cmp dword [ebp + 0x28], 0xffffffff
jne 0x4473c1
mov eax, edx
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x54
jne 0x4473ab
mov ecx, ebx
sub ecx, eax
mov dword [ebp + 4], ecx
cmp dword [ebp + 0x18], 0
jne 0x447464
cmp dword [ebp + 0x28], 0
je 0x4476f8
cmp dword [ebp + 0x28], 1
push dword [ebp - 8]
mov edi, dword [ebp + 0x78]
push dword [ebp + 0x1c]
mov byte [ebx], 0
jg 0x447414
push 1
push dword [ebp + 0x48]
call fcn.00444d6e
mov eax, dword [ebp + 0x48]
push dword [ebp + 0x38]
lea esi, [eax + 1]
push eax
push esi
call fcn.004517f0
mov al, byte [ebp + 0x3c]
mov ecx, dword [ebp + 0x48]
add esp, 0x1c
inc ebx
add al, 0x66
mov byte [ecx], al
mov dword [ebp + 0x48], esi
jmp 0x447453
push 4
push dword [ebp + 0x48]
call fcn.00444d6e
push dword [ebp + 0x38]
mov eax, dword [ebp + 0x48]
push eax
add eax, 4
push eax
call fcn.004517f0
mov cl, byte [ebp + 0x3c]
mov eax, dword [ebp + 0x48]
add cl, 0x66
mov byte [eax], cl
add esp, 0x1c
add ebx, 4
inc eax
mov byte [eax], 0x5d
inc eax
mov dword [ebp + 0x20], 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 + 0x14]
mov ecx, dword [ebp + 0x28]
mov edi, dword [ebp + 0x78]
jmp 0x447535
cmp dword [ebp + 0x18], 1
jle 0x447528
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x4474b5
mov eax, dword [ebp + 0x18]
dec eax
mov dword [ebp + 0x44], eax
imul eax, dword [ebp - 0x10]
fild dword [ebp + 0x44]
fimul dword [ebp - 0x10]
mov dword [ebp + 0x30], eax
fcomp qword [0x4664e8]
fnstsw ax
test ah, 0x41
je 0x447c22
mov eax, dword [ecx]
mov edx, 0x7fffffeb
sub edx, eax
cmp edx, dword [ebp + 0x30]
jl 0x447c22
mov edx, dword [ebp + 0x30]
add edx, eax
mov dword [ecx], edx
jmp 0x447528
cmp dword [ebp - 0x54], 0
je 0x4474c7
cmp dword [ebp + 0x10], 0
jge 0x4474c7
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0x18], 1
jle 0x447528
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp - 8]
dec eax
mov dword [ebp + 0x30], eax
push dword [ebp + 0x38]
mov eax, dword [edi + 0x20]
push dword [ebp + 0x48]
mov dword [ebp + 0x44], eax
push ebx
call fcn.00450220
add esp, 0xc
jmp 0x447512
mov ecx, dword [edi + 0x20]
xor eax, eax
mov ah, byte [esi]
mov al, byte [esi + 1]
add eax, dword [ebp + 0x38]
sar eax, 8
mov byte [ecx], al
mov al, byte [esi + 1]
add al, byte [ebp + 0x38]
mov ecx, dword [edi + 0x20]
mov byte [ecx + 1], al
add dword [edi + 0x20], 2
inc esi
inc esi
cmp esi, dword [ebp + 0x44]
jb 0x4474ee
mov esi, dword [ebp + 0x44]
add ebx, dword [ebp + 0x38]
dec dword [ebp + 0x30]
mov dword [ebp - 8], esi
jne 0x4474d7
mov esi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x28]
test ecx, ecx
jle 0x447537
sub ecx, dword [ebp + 0x18]
mov dword [ebp + 0x28], ecx
test ecx, ecx
jl 0x44768f
mov edx, dword [ebp + 0x7c]
test edx, edx
je 0x44758a
test ecx, ecx
jle 0x44758a
mov eax, dword [ebp - 0x10]
add eax, 7
mov dword [ebp + 0x30], eax
imul eax, ecx
fild dword [ebp + 0x30]
fimul dword [ebp + 0x28]
sub eax, 6
mov ecx, eax
fcomp qword [0x4664e8]
fnstsw ax
test ah, 0x41
je 0x447c22
mov eax, dword [edx]
mov edi, 0x7fffffeb
sub edi, eax
cmp edi, ecx
jl 0x447c22
add ecx, eax
mov dword [edx], ecx
jmp 0x447647
lea eax, [ecx - 1]
test eax, eax
mov dword [ebp + 0x40], eax
jl 0x447647
mov al, byte [ebp + 0x3c]
add al, 0x66
mov byte [ebp - 9], al
mov esi, dword [edi + 0x20]
mov al, byte [ebp - 9]
mov byte [ebx], al
inc ebx
cmp dword [ebp + 0x40], 0
mov dword [ebp + 0x30], esi
je 0x4475d2
mov eax, dword [ebp + 0x20]
mov byte [ebx], 0x5d
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 + 0x20], ebx
mov byte [ebx], cl
mov byte [ebx + 1], al
inc ebx
inc ebx
push dword [ebp + 0x38]
push dword [ebp + 0x48]
push ebx
call fcn.00450220
mov eax, dword [ebp - 8]
add esp, 0xc
cmp eax, esi
jae 0x447635
mov esi, dword [ebp + 0x40]
neg esi
sbb esi, esi
and esi, 3
inc esi
cmp dword [ebp + 0x40], 0
sete cl
dec cl
and cl, 3
inc cl
mov byte [ebp - 0xa], 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 + 0x38]
sar ecx, 8
mov byte [edx], cl
mov cl, byte [eax + 1]
add cl, byte [ebp - 0xa]
mov edx, dword [edi + 0x20]
add cl, byte [ebp + 0x38]
mov byte [edx + 1], cl
add dword [edi + 0x20], 2
inc eax
inc eax
cmp eax, dword [ebp + 0x30]
jb 0x447604
mov esi, dword [ebp + 0x30]
add ebx, dword [ebp + 0x38]
dec dword [ebp + 0x40]
mov dword [ebp - 8], esi
jns 0x4475a0
mov esi, dword [ebp + 0x14]
cmp dword [ebp + 0x20], 0
je 0x4479af
mov esi, dword [ebp + 0x20]
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], 0x54
mov byte [ebx + 2], cl
sub esi, edx
mov dword [ebp + 0x30], 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 0x447654
jmp 0x4479ac
xor eax, eax
mov esi, ebx
sub esi, dword [ebp + 4]
mov ah, byte [esi + 1]
mov edi, esi
mov al, byte [esi + 2]
sub edi, eax
mov al, byte [ebp + 0x3c]
add al, 0x55
cmp dword [ebp + 0x7c], 0
mov byte [esi], al
jne 0x4479ac
cmp byte [edi], 0x5c
je 0x4479ac
mov dword [ebp + 0x44], edi
push dword [ebp + 0x1c]
push esi
push dword [ebp + 0x44]
call fcn.00444ae7
add esp, 0xc
test eax, eax
jne 0x4476ea
mov eax, dword [ebp + 0x44]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x53
mov dword [ebp + 0x44], eax
je 0x4476bd
jmp 0x4479ac
add byte [edi], 3
jmp 0x4479ac
cmp dword [ebp + 0x28], 0
jne 0x4476ff
mov ebx, edx
jmp 0x447a9f
mov ecx, dword [ebp + 0x28]
cmp ecx, 1
je 0x44770b
or dword [edi + 0x40], 1
cmp dword [ebp + 0x18], 0
jne 0x44771d
cmp ecx, 0xffffffff
jne 0x44772f
add al, 0x45
jmp 0x4479a9
cmp dword [ebp + 0x18], 1
jne 0x44773b
cmp ecx, 0xffffffff
jne 0x44773b
add al, 0x47
jmp 0x4479a9
cmp ecx, 1
jne 0x44773b
add al, 0x49
jmp 0x4479a9
add al, 0x4b
mov byte [ebx], al
mov eax, dword [ebp + 0x18]
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 0x44775b
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 0x4479ac
cmp dword [ebp + 0x1c], 0
je 0x44777a
lea ecx, [ebx - 1]
test byte [ecx], 0x80
jne 0x4477e9
cmp dword [ebp + 0x18], 1
movzx eax, byte [ebx - 1]
mov dword [ebp + 0x4c], eax
jle 0x447792
mov edi, dword [edi + 0x44]
or edi, eax
or edi, dword [ebp - 0x18]
mov dword [ebp + 0x10], edi
cmp dword [ebp + 0x34], 0
jne 0x4477d1
cmp dword [ebp + 0x28], 0
jge 0x4477d1
push dword [ebp + 0x2c]
mov eax, dword [ebp + 0x50]
inc eax
push eax
lea eax, [ebp - 0x60]
push eax
push dword [ebp + 0x1c]
mov eax, dword [ebp + 0x48]
movzx eax, byte [eax]
push dword [ebp + 0x4c]
push eax
mov edi, dword [ebp + 0x78]
call fcn.00444e34
add esp, 0x18
test eax, eax
je 0x4477d1
and dword [ebp + 0x3c], 0
mov dword [ebp + 0x34], 1
mov ecx, dword [ebp + 0x48]
mov al, byte [ecx]
cmp al, 0xf
je 0x44780f
cmp al, 0xe
je 0x44780f
or dword [ebp + 0x38], 0xffffffff
or dword [ebp + 0x44], 0xffffffff
jmp 0x44781d
dec ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x4477e8
mov eax, ebx
sub eax, ecx
push eax
mov dword [ebp + 0x4c], eax
push ecx
lea eax, [ebp - 0x60]
push eax
call fcn.00450220
add esp, 0xc
or dword [ebp + 0x4c], 0x80
jmp 0x447792
movzx eax, byte [ecx + 1]
mov dword [ebp + 0x44], eax
movzx eax, byte [ecx + 2]
mov dword [ebp + 0x38], eax
cmp dword [ebp + 0x28], 0
mov esi, ebx
mov ebx, ecx
je 0x447a9f
mov edx, dword [ebp + 0x28]
cmp edx, 1
je 0x44783a
mov eax, dword [ebp + 0x78]
or dword [eax + 0x40], 1
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x40]
add eax, ecx
cmp dword [ebp + 0x18], 0
mov dword [ebp + 0x3c], eax
jne 0x44786f
cmp edx, 0xffffffff
mov ebx, dword [ebp + 0x48]
je 0x44790b
cmp edx, 1
je 0x447967
add al, 0x24
mov byte [ebx], al
inc ebx
mov eax, edx
mov byte [ebx + 1], dl
jmp 0x447978
cmp dword [ebp + 0x18], 1
jne 0x4478ae
cmp edx, 0xffffffff
jne 0x447884
mov ebx, dword [ebp + 0x48]
add al, 0x20
jmp 0x447969
cmp edx, 1
mov ebx, esi
je 0x447a9f
mov al, byte [ebp + 0x3c]
add al, 0x24
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 0x44797d
mov ebx, dword [ebp + 0x48]
add cl, 0x26
mov byte [ebx], cl
mov ecx, dword [ebp + 0x18]
inc ebx
sar ecx, 8
mov byte [ebx], cl
mov cl, byte [ebp + 0x18]
mov byte [ebx + 1], cl
inc ebx
inc ebx
test edx, edx
jge 0x44790f
cmp dword [ebp + 0x1c], 0
je 0x4478f5
cmp dword [ebp + 0x4c], 0x80
jl 0x4478f5
mov esi, dword [ebp + 0x4c]
and esi, 7
push esi
lea eax, [ebp - 0x60]
push eax
push ebx
call fcn.00450220
mov eax, dword [ebp + 0x3c]
add esp, 0xc
add ebx, esi
jmp 0x44790b
mov cl, byte [ebp + 0x4c]
mov byte [ebx], cl
mov ecx, dword [ebp + 0x44]
inc ebx
test ecx, ecx
jl 0x44790b
mov byte [ebx], cl
mov cl, byte [ebp + 0x38]
inc ebx
mov byte [ebx], cl
inc ebx
add al, 0x1e
jmp 0x447969
mov ecx, dword [ebp + 0x18]
cmp dword [ebp + 0x28], ecx
je 0x44797f
cmp dword [ebp + 0x1c], 0
je 0x447941
cmp dword [ebp + 0x4c], 0x80
jl 0x447941
mov esi, dword [ebp + 0x4c]
and esi, 7
push esi
lea eax, [ebp - 0x60]
push eax
push ebx
call fcn.00450220
mov eax, dword [ebp + 0x3c]
add esp, 0xc
add ebx, esi
jmp 0x447947
mov cl, byte [ebp + 0x4c]
mov byte [ebx], cl
inc ebx
cmp dword [ebp + 0x44], 0
mov ecx, dword [ebp + 0x28]
jl 0x44795c
mov dl, byte [ebp + 0x44]
mov byte [ebx], dl
mov dl, byte [ebp + 0x38]
inc ebx
mov byte [ebx], dl
inc ebx
sub ecx, dword [ebp + 0x18]
cmp ecx, 1
mov dword [ebp + 0x28], ecx
jne 0x44796e
add al, 0x22
mov byte [ebx], al
inc ebx
jmp 0x44797f
add al, 0x24
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 0x4479a6
cmp dword [ebp + 0x4c], 0x80
jl 0x4479a6
mov esi, dword [ebp + 0x4c]
and esi, 7
push esi
lea eax, [ebp - 0x60]
push eax
push ebx
call fcn.00450220
add esp, 0xc
add ebx, esi
jmp 0x4479ac
mov al, byte [ebp + 0x4c]
mov byte [ebx], al
inc ebx
mov esi, dword [ebp + 0x14]
cmp dword [ebp + 0x34], 0
je 0x447a9f
mov al, byte [esi]
cmp al, 0x26
je 0x4479c7
cmp al, 0x40
je 0x4479c7
cmp al, 0x33
jne 0x4479d6
movzx eax, al
movzx eax, byte [eax + 0x466550]
add esi, eax
mov dword [ebp + 0x14], esi
mov eax, ebx
sub eax, esi
test eax, eax
mov dword [ebp + 0x30], eax
jle 0x447a9f
movzx eax, byte [esi]
cmp eax, 0x2f
jg 0x447a35
je 0x447a30
sub eax, 0x1e
je 0x447a2b
push 2
pop ecx
sub eax, ecx
je 0x447a26
sub eax, ecx
je 0x447a21
sub eax, ecx
je 0x447a1c
sub eax, 7
je 0x447a14
sub eax, ecx
jne 0x447a4b
mov byte [esi], 0x35
jmp 0x447a9f
mov byte [esi], 0x34
jmp 0x447a9f
mov byte [esi], 0x2a
jmp 0x447a9f
mov byte [esi], 0x29
jmp 0x447a9f
mov byte [esi], 0x28
jmp 0x447a9f
mov byte [esi], 0x27
jmp 0x447a9f
mov byte [esi], 0x36
jmp 0x447a9f
sub eax, 0x31
je 0x447a9c
sub eax, 7
je 0x447a97
dec eax
dec eax
je 0x447a92
dec eax
dec eax
je 0x447a8d
dec eax
dec eax
je 0x447a88
push dword [ebp + 0x30]
push esi
add esi, 3
push esi
call fcn.004517f0
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x30]
mov byte [eax], 0x5c
add ecx, 3
add ebx, 3
mov byte [ebx], 0x54
add esp, 0xc
inc ebx
mov byte [ebx + 1], cl
mov eax, ecx
sar eax, 8
mov byte [ebx], al
mov edx, dword [ebp + 0x14]
mov byte [edx + 1], al
mov eax, dword [ebp + 0x14]
inc ebx
inc ebx
mov byte [eax + 2], cl
jmp 0x447a9f
mov byte [esi], 0x44
jmp 0x447a9f
mov byte [esi], 0x43
jmp 0x447a9f
mov byte [esi], 0x42
jmp 0x447a9f
mov byte [esi], 0x41
jmp 0x447a9f
mov byte [esi], 0x37
mov eax, dword [ebp - 0x6c]
mov edi, dword [ebp + 0x78]
and dword [ebp + 0x48], 0
or dword [edi + 0x44], eax
inc dword [ebp + 0x50]
mov esi, dword [ebp + 0x50]
jmp 0x445596
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x34
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3b
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
inc dword [ebp + 0x50]
mov dword [eax], 0x1c
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
dec esi
mov dword [ebp + 0x50], esi
mov dword [eax], 0x1a
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3a
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
dec dword [ebp + 0x50]
mov dword [eax], 0xc
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1d
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x27
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x26
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2a
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x31
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
inc esi
mov dword [ebp + 0x50], esi
mov dword [eax], 0x18
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x36
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1b
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xe
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x28
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2d
jmp 0x447c2b
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 0x447c2b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1f
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1e
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
mov dword [eax], 7
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
mov dword [eax], 8
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
mov dword [eax], 6
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
mov dword [eax], 9
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xb
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x37
jmp 0x447c2b
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x14
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