Function at 0x4455d2
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 + 0x1c], eax
mov dword [ebp + 0x28], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x10], eax
mov dword [ebp + 8], eax
mov dword [ebp - 0x50], eax
mov dword [ebp + 0x48], eax
mov dword [ebp - 4], 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 + 0x20], eax
mov eax, edx
shr eax, 9
and eax, ecx
mov dword [ebp - 0x64], eax
xor eax, ecx
mov dword [ebp - 0x68], eax
push 0xfffffffffffffffe
pop eax
mov dword [ebp], 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 - 0x54], ebx
mov dword [ebp + 0x50], esi
mov dword [ebp - 0x1c], eax
movzx eax, byte [esi]
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
mov dword [ebp + 0x4c], eax
je 0x4456d0
mov eax, dword [edi + 0x10]
add eax, 0x1000
cmp ebx, eax
ja 0x447b67
cmp ebx, dword [ebp - 0x14]
jae 0x445675
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 0x447cd2
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 0x4456c5
cmp eax, dword [ebp - 0x54]
jbe 0x4456c8
mov esi, dword [ebp - 0x54]
mov eax, ebx
sub eax, dword [ebp + 0x48]
push eax
push dword [ebp + 0x48]
push esi
call fcn.00450e80
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 0x4456c8
mov ebx, dword [ebp - 0x54]
mov eax, dword [ebp + 0x4c]
mov dword [ebp - 0x14], ebx
jmp 0x4456e2
mov ecx, dword [edi + 0x10]
add ecx, 0x1000
cmp dword [edi + 0x20], ecx
ja 0x447b67
xor ecx, ecx
cmp dword [ebp + 8], ecx
je 0x445743
cmp eax, ecx
je 0x445743
cmp eax, 0x5c
jne 0x445705
lea eax, [esi + 1]
cmp byte [eax], 0x45
jne 0x445705
mov dword [ebp + 8], ecx
mov dword [ebp + 0x50], eax
jmp 0x447b5c
cmp dword [ebp - 4], ecx
je 0x445721
cmp dword [ebp + 0x7c], ecx
jne 0x44571d
mov ecx, dword [ebp - 4]
push edi
mov eax, esi
call fcn.00444ed1
add esp, 4
and dword [ebp - 4], 0
test word [ebp + 0x2c], 0x4000
je 0x446348
mov ecx, dword [ebp + 0x50]
mov esi, edi
mov eax, ebx
mov dword [ebp - 4], ebx
call fcn.00444ead
mov ebx, eax
jmp 0x446348
cmp eax, 0x2a
je 0x4457b5
cmp eax, 0x2b
je 0x4457b5
cmp eax, 0x3f
je 0x4457b5
cmp eax, 0x7b
jne 0x445763
lea eax, [esi + 1]
call fcn.004445c1
test eax, eax
jne 0x4457b5
and dword [ebp + 0x40], 0
cmp dword [ebp - 4], 0
je 0x445792
mov eax, dword [ebp - 0x44]
dec dword [ebp - 0x44]
test eax, eax
jg 0x445792
cmp dword [ebp + 0x7c], 0
jne 0x44578e
mov ecx, dword [ebp - 4]
push edi
mov eax, esi
call fcn.00444ed1
mov esi, dword [ebp + 0x50]
add esp, 4
and dword [ebp - 4], 0
test byte [ebp + 0x2c], 8
je 0x445808
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp + 0x4c]
test byte [ecx + eax], 1
jne 0x447b5c
cmp ecx, 0x23
mov esi, dword [ebp + 0x50]
jne 0x445808
jmp 0x44589c
mov dword [ebp + 0x40], 1
jmp 0x445792
mov ecx, dword [edi + 0x4c]
test ecx, ecx
je 0x445876
mov eax, dword [edi + 0x1c]
cmp esi, eax
jae 0x44589c
push dword [ebp + 0x20]
lea edx, [edi + 0x50]
push edx
push eax
push ecx
push esi
call fcn.0044d61c
mov esi, dword [ebp + 0x50]
add esp, 0x14
test eax, eax
je 0x44589c
mov eax, dword [edi + 0x50]
lea esi, [esi + eax - 1]
mov dword [ebp + 0x50], esi
cmp byte [esi], 0
jne 0x447b5c
and dword [ebp + 0x4c], 0
xor edx, edx
test word [ebp + 0x2c], 0x4000
je 0x44582d
cmp dword [ebp + 0x40], edx
jne 0x44582d
mov ecx, dword [ebp + 0x50]
mov esi, edi
mov eax, ebx
mov dword [ebp - 4], ebx
call fcn.00444ead
mov esi, dword [ebp + 0x50]
mov ebx, eax
xor edx, edx
mov eax, dword [ebp + 0x4c]
cmp eax, 0x2e
jg 0x4462d4
je 0x4462b3
sub eax, edx
je 0x4462fd
sub eax, 0x24
je 0x4462a8
sub eax, 4
je 0x4458b8
dec eax
je 0x4462fd
dec eax
je 0x4458af
dec eax
jne 0x446348
or dword [ebp + 0x28], 0xffffffff
mov dword [ebp + 0x1c], 1
jmp 0x447303
mov ecx, dword [edi + 0x50]
mov edx, dword [edi + 0x1c]
sub edx, ecx
cmp esi, edx
ja 0x44589c
cmp al, byte [edi + 0x54]
jne 0x44589c
cmp ecx, 1
je 0x4457f1
mov al, byte [esi + 1]
cmp al, byte [edi + 0x55]
je 0x4457f1
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
jne 0x4457be
jmp 0x445804
or dword [ebp + 0x28], 0xffffffff
jmp 0x447300
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 + 0x40], edx
mov dword [ebp + 0x38], 0x5e
mov dword [ebp + 4], edx
jne 0x445995
mov ecx, dword [edi + 0xc]
lea edx, [esi + 1]
mov dword [ebp + 0x44], edx
movzx edx, byte [edx]
test byte [edx + ecx], 2
je 0x445995
mov esi, dword [ebp + 0x44]
xor edx, edx
mov dword [ebp + 0x40], esi
mov dword [ebp + 0x48], edx
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + ecx], 2
jne 0x445900
mov al, byte [esi]
cmp al, 0x3a
je 0x447b75
cmp al, 0x29
jne 0x445987
sub esi, dword [ebp + 0x40]
cmp dword [0x475054], edx
mov dword [ebp + 0x44], edx
jle 0x445987
mov dword [ebp + 0x34], section..data
mov eax, dword [ebp + 0x34]
cmp esi, dword [eax + 4]
jne 0x44594a
push esi
push dword [eax]
push dword [ebp + 0x40]
call fcn.00450b38
add esp, 0xc
test eax, eax
je 0x44595e
inc dword [ebp + 0x44]
mov eax, dword [ebp + 0x44]
add dword [ebp + 0x34], 0xc
cmp eax, dword [0x475054]
jl 0x445930
jmp 0x445978
mov eax, dword [ebp + 0x44]
imul eax, eax, 0xc
mov al, byte [eax + 0x475008]
mov byte [ebx], al
inc ebx
cmp al, 0x6d
jne 0x445978
mov dword [edi + 0x48], 1
mov eax, dword [ebp + 0x44]
cmp eax, dword [0x475054]
jl 0x447b5c
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3c
jmp 0x447cdb
cmp al, 0x3f
jne 0x446134
inc esi
mov dword [ebp + 0x50], esi
mov dl, byte [esi]
movzx eax, dl
cmp eax, 0x3a
jg 0x445cef
je 0x445d2c
cmp eax, 0x28
jg 0x445cd2
je 0x445a68
sub eax, 0x21
je 0x445a1c
dec eax
dec eax
je 0x4459ed
sub eax, 3
je 0x4459de
dec eax
je 0x445fd2
jmp 0x445dbb
push 0x29
pop ecx
mov dword [ebp + 0x40], 1
jmp 0x44648f
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
je 0x445a0e
cmp al, 0x29
je 0x445a05
inc esi
mov dword [ebp + 0x50], esi
mov al, byte [esi]
test al, al
jne 0x4459f7
cmp byte [esi], 0
jne 0x447b5c
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x12
jmp 0x447cdb
inc esi
mov dword [ebp + 0x50], esi
cmp byte [esi], 0x29
jne 0x445a32
mov byte [ebx], 0x6c
inc ebx
and dword [ebp + 0x48], 0
jmp 0x447b5c
mov dword [ebp + 0x38], 0x58
and dword [ebp + 0x48], 0
mov eax, dword [ebp + 0x38]
mov byte [ebx], al
mov ecx, dword [edi + 0x40]
and dword [ebp - 0x10], 0
cmp eax, 0x59
mov dword [ebp + 0x18], ebx
mov dword [ebp + 0x44], ecx
je 0x446145
cmp eax, 0x5a
je 0x446145
xor eax, eax
jmp 0x446148
cmp byte [esi + 1], 0x3f
mov dword [ebp + 0x38], 0x5f
jne 0x445a90
mov al, byte [esi + 2]
cmp al, 0x3d
je 0x446115
cmp al, 0x21
je 0x446115
cmp al, 0x3c
je 0x446115
or dword [ebp + 0x44], 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 + 0x40], 3
jne 0x445ac1
add esi, 2
cmp byte [esi], 0x26
jne 0x445ac1
or dword [ebp + 0x34], 0xffffffff
mov dword [ebp + 0x50], esi
mov byte [ebx + 3], 0x64
jmp 0x445af7
cmp cl, 0x3c
jne 0x445acf
mov dword [ebp + 0x34], 0x3e
jmp 0x445adb
cmp cl, 0x27
jne 0x445ae0
mov dword [ebp + 0x34], 0x27
mov dword [ebp + 0x50], eax
jmp 0x445af7
and dword [ebp + 0x34], 0
cmp cl, 0x2d
je 0x445aee
cmp cl, 0x2b
jne 0x445af7
mov dword [ebp + 0x50], eax
movzx eax, byte [eax]
mov dword [ebp + 0x44], eax
mov esi, dword [ebp + 0x50]
mov ecx, dword [edi + 0xc]
inc esi
movzx eax, byte [esi]
test byte [eax + ecx], 0x10
je 0x447b83
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 + 0x14], esi
je 0x445b48
test edx, edx
jl 0x445b38
test byte [eax + 0x4674d8], 4
je 0x445b35
imul edx, edx, 0xa
lea edx, [edx + eax - 0x30]
jmp 0x445b38
or edx, 0xffffffff
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [ecx + eax], 0x10
jne 0x445b1f
mov dword [ebp + 0x4c], edx
mov eax, esi
sub eax, dword [ebp + 0x14]
cmp dword [ebp + 0x34], 0
mov dword [ebp + 0x48], eax
jle 0x445b66
movzx eax, byte [esi]
inc esi
cmp eax, dword [ebp + 0x34]
mov dword [ebp + 0x50], esi
jne 0x447b94
mov al, byte [esi]
inc esi
cmp al, 0x29
mov dword [ebp + 0x50], esi
jne 0x447b94
cmp dword [ebp + 0x7c], 0
jne 0x446115
xor eax, eax
cmp dword [ebp + 0x44], eax
jle 0x445bbd
cmp edx, eax
jle 0x447ba6
cmp dword [ebp + 0x44], 0x2d
jne 0x445bad
mov ecx, dword [edi + 0x30]
sub ecx, edx
inc ecx
mov edx, ecx
cmp edx, eax
jg 0x445bb0
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xf
jmp 0x447cdb
add edx, dword [edi + 0x30]
mov eax, edx
sar eax, 8
mov byte [ebx + 5], dl
jmp 0x446112
cmp dword [edi + 0x28], eax
mov ecx, dword [edi + 0x24]
mov dword [ebp + 0x44], ecx
mov dword [ebp + 0x3c], eax
jle 0x445bf7
mov esi, ecx
push dword [ebp + 0x48]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x14]
call fcn.00450b38
add esp, 0xc
test eax, eax
je 0x445bf4
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x3c]
mov eax, dword [ebp + 0x3c]
cmp eax, dword [edi + 0x28]
mov dword [ebp + 0x44], esi
jl 0x445bcd
mov esi, dword [ebp + 0x50]
mov eax, dword [ebp + 0x3c]
cmp eax, dword [edi + 0x28]
jge 0x445c1a
mov eax, dword [ebp + 0x44]
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 0x446115
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 + 0x14]
mov ecx, esi
call fcn.004446b8
add esp, 0xc
test eax, eax
jg 0x445c0a
xor ecx, ecx
cmp dword [ebp + 0x34], ecx
jne 0x445b9f
mov edx, dword [ebp + 0x14]
cmp byte [edx], 0x52
jne 0x445c8e
xor esi, esi
inc esi
cmp dword [ebp + 0x48], esi
jle 0x445c78
movzx eax, byte [esi + edx]
test byte [eax + 0x4674d8], 4
je 0x445b9f
imul ecx, ecx, 0xa
inc esi
cmp esi, dword [ebp + 0x48]
lea ecx, [ecx + eax - 0x30]
jl 0x445c56
test ecx, ecx
jne 0x445c7d
mov ecx, 0xffff
mov eax, ecx
mov byte [ebx + 3], 0x64
sar eax, 8
mov byte [ebx + 5], cl
jmp 0x446112
cmp dword [ebp + 0x48], 6
jne 0x445cb8
push 6
push str.DEFINE
push edx
call fcn.00450b38
add esp, 0xc
test eax, eax
jne 0x445cb8
mov byte [ebx + 3], 0x65
mov dword [ebp + 0x40], 1
jmp 0x446115
mov eax, dword [ebp + 0x4c]
test eax, eax
jg 0x445c0a
neg eax
sbb eax, eax
and eax, 0xffffffec
add eax, 0x23
jmp 0x447c73
cmp eax, 0x2b
je 0x445d40
cmp eax, 0x2d
je 0x445d40
cmp eax, 0x2f
jle 0x445dbb
cmp eax, 0x39
jle 0x445d40
jmp 0x445dbb
sub eax, 0x3c
je 0x445faf
dec eax
je 0x445f9f
dec eax
je 0x445f93
sub eax, 5
je 0x445f28
sub eax, 0xd
je 0x445eee
dec eax
dec eax
je 0x445d3c
sub eax, 0x2a
jne 0x445dbb
mov dword [ebp + 4], 1
mov dword [ebp + 0x38], 0x5d
inc esi
mov dword [ebp + 0x50], esi
jmp 0x446115
inc esi
mov dword [ebp + 0x50], esi
mov dl, byte [esi]
movzx ecx, dl
cmp ecx, 0x2b
jne 0x445da9
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
xor edx, edx
test byte [eax + 0x4674d8], 4
mov dword [ebp + 0x4c], edx
je 0x445d79
imul edx, edx, 0xa
inc esi
lea edx, [edx + eax - 0x30]
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + 0x4674d8], 4
jne 0x445d5f
mov dword [ebp + 0x4c], edx
cmp byte [esi], 0x29
jne 0x447bc5
cmp ecx, 0x2d
jne 0x445ed2
test edx, edx
je 0x447ba6
mov eax, dword [edi + 0x30]
sub eax, edx
inc eax
test eax, eax
mov dword [ebp + 0x4c], eax
jle 0x445b9f
jmp 0x44655d
cmp ecx, 0x2d
jne 0x445d4e
inc esi
movzx eax, byte [esi]
test byte [eax + 0x4674d8], 4
jne 0x445d4b
xor eax, eax
xor esi, esi
cmp dl, 0x29
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x44], esi
lea ecx, [ebp + 0x44]
je 0x445e51
cmp dl, 0x3a
je 0x445e4b
inc dword [ebp + 0x50]
movzx eax, dl
cmp eax, 0x69
jg 0x445e21
je 0x445e1c
cmp eax, 0x2d
je 0x445e17
cmp eax, 0x4a
je 0x445e08
cmp eax, 0x55
je 0x445e00
cmp eax, 0x58
jne 0x447bb4
or dword [ecx], 0x40
jmp 0x445e41
or dword [ecx], 0x200
jmp 0x445e41
or dword [ecx], 0x80000
or dword [edi + 0x3c], 0x8000000
jmp 0x445e41
lea ecx, [ebp + 0x34]
jmp 0x445e41
or dword [ecx], 1
jmp 0x445e41
cmp eax, 0x6d
je 0x445e3e
cmp eax, 0x73
je 0x445e39
cmp eax, 0x78
jne 0x447bb4
or dword [ecx], 8
jmp 0x445e41
or dword [ecx], 4
jmp 0x445e41
or dword [ecx], 2
mov eax, dword [ebp + 0x50]
mov dl, byte [eax]
cmp dl, 0x29
jne 0x445dd1
mov esi, dword [ebp + 0x44]
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 0x445ec3
mov ecx, dword [edi + 0x14]
add ecx, 3
cmp ebx, ecx
jne 0x445e86
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x445e7b
cmp dword [ecx], 6
jne 0x445e86
mov dword [edi + 0x3c], eax
mov dword [ebp + 0x2c], eax
jmp 0x445a29
mov ecx, eax
xor ecx, dword [ebp + 0x2c]
test cl, 7
je 0x445e9c
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 - 0x64], ecx
xor ecx, 1
and eax, 1
shl eax, 8
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x1c], eax
jmp 0x445a29
inc dword [ebp + 0x50]
mov dword [ebp + 0x38], 0x5d
jmp 0x446115
cmp ecx, 0x2b
jne 0x44655d
test edx, edx
je 0x447ba6
add edx, dword [edi + 0x30]
mov dword [ebp + 0x4c], edx
jmp 0x44655d
inc esi
mov dword [ebp + 0x50], esi
mov dl, byte [esi]
cmp dl, 0x3d
je 0x445f15
cmp dl, 0x3e
je 0x445f15
cmp dl, 0x3c
je 0x445fd2
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x29
jmp 0x447cdb
xor eax, eax
cmp dl, 0x3e
sete al
push 0x29
mov dword [ebp + 0x40], eax
pop ecx
jmp 0x44648f
mov byte [ebx], 0x52
mov esi, dword [ebp + 0x50]
mov dword [ebp - 4], ebx
inc ebx
mov dword [ebp - 0x44], 1
xor ecx, ecx
jmp 0x445f44
imul ecx, ecx, 0xa
lea ecx, [ecx + eax - 0x30]
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
test byte [eax + 0x4674d8], 4
jne 0x445f3d
cmp byte [esi], 0x29
jne 0x447bd3
cmp ecx, 0xff
jg 0x447be1
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 0x445a29
mov dword [ebp + 0x38], 0x5c
jmp 0x445d33
mov dword [ebp + 0x38], 0x57
inc esi
mov dword [ebp + 0x50], esi
jmp 0x445a39
mov al, byte [esi + 1]
cmp al, 0x21
je 0x44612b
cmp al, 0x3d
je 0x44611d
mov ecx, dword [edi + 0xc]
movzx eax, al
test byte [eax + ecx], 0x10
je 0x447c0b
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 + 0x14], esi
je 0x446006
mov eax, ecx
inc esi
mov dword [ebp + 0x50], esi
movzx ecx, byte [esi]
test byte [ecx + eax], 0x10
jne 0x445ff9
mov eax, esi
sub eax, dword [ebp + 0x14]
cmp dword [ebp + 0x7c], 0
mov dword [ebp + 0x48], eax
je 0x446053
movzx ecx, byte [esi]
cmp ecx, dword [ebp + 0x34]
jne 0x447bef
cmp dword [edi + 0x28], 0x2710
jge 0x447bfd
lea edx, [eax + 3]
cmp edx, dword [edi + 0x2c]
jle 0x4460f5
cmp eax, 0x20
mov dword [edi + 0x2c], edx
jle 0x4460f5
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x30
jmp 0x447cdb
and dword [ebp + 0x3c], 0
cmp dword [edi + 0x28], 0
mov esi, dword [edi + 0x24]
jle 0x4460c7
push dword [ebp + 0x48]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x14]
call fcn.0044e7d6
add esp, 0xc
test eax, eax
jne 0x44609c
mov eax, dword [ebp + 0x48]
cmp byte [esi + eax + 2], 0
jne 0x446097
test dword [ebp + 0x2c], 0x80000
jne 0x44609e
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2b
jmp 0x447cdb
or eax, 0xffffffff
test eax, eax
jl 0x4460ae
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x3c]
mov eax, dword [ebp + 0x3c]
cmp eax, dword [edi + 0x28]
jl 0x446060
jmp 0x4460c7
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.00450e80
add esp, 0xc
mov eax, dword [edi + 0x30]
push dword [ebp + 0x48]
inc eax
push dword [ebp + 0x14]
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.00450190
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 + 0x40], 2
mov byte [ebx + 4], al
mov dword [ebp + 0x48], ebx
jmp 0x445a3d
mov dword [ebp + 0x38], 0x59
inc esi
inc esi
jmp 0x445fa7
mov dword [ebp + 0x38], 0x5a
jmp 0x446124
test word [ebp + 0x2c], 0x1000
je 0x4460fc
mov dword [ebp + 0x38], 0x5d
jmp 0x446115
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 - 0x18]
push ecx
lea ecx, [ebp - 0x58]
push ecx
push dword [ebp + 0x40]
push dword [ebp + 4]
push eax
push dword [ebp + 0x68]
lea eax, [ebp + 0x50]
push eax
lea eax, [ebp + 0x18]
push eax
mov eax, dword [ebp + 0x2c]
and eax, 7
push eax
push dword [ebp + 0x30]
call fcn.00447ced
add esp, 0x34
test eax, eax
je 0x447cdb
mov edx, dword [ebp + 0x38]
cmp edx, 0x5f
jne 0x4461c0
xor esi, esi
cmp dword [ebp + 0x7c], esi
jne 0x4461c0
mov eax, ebx
xor ecx, ecx
mov ch, byte [eax + 1]
inc esi
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x54
jne 0x44619e
cmp byte [ebx + 3], 0x65
jne 0x446215
cmp esi, 1
jg 0x447c1d
push 0x65
pop edx
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp + 0x50]
cmp byte [ecx], 0x29
jne 0x447c39
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x44622e
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x10]
mov edx, 0x7fffffeb
sub edx, eax
lea esi, [ecx - 6]
cmp edx, esi
jl 0x447cd2
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 0x447b5c
cmp esi, 2
jg 0x447c2b
cmp esi, 1
jne 0x4461c0
or eax, 0xffffffff
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x58], eax
jmp 0x4461c3
cmp edx, 0x65
mov ebx, dword [ebp + 0x18]
je 0x447b5c
mov ecx, dword [ebp + 0x10]
mov dword [ebp], ecx
mov ecx, dword [ebp + 0x24]
xor esi, esi
cmp edx, 0x5c
mov dword [ebp + 0xc], ecx
mov dword [ebp - 0x50], esi
jl 0x44628c
cmp ecx, 0xfffffffe
jne 0x44626f
cmp eax, esi
jl 0x446265
mov dword [ebp + 0x24], eax
mov dword [ebp - 0x50], 1
jmp 0x446269
or dword [ebp + 0x24], 0xffffffff
or dword [ebp + 0xc], 0xffffffff
jmp 0x44627e
cmp eax, esi
jl 0x44627e
cmp dword [ebp - 0x18], esi
jge 0x446287
or eax, dword [ebp + 0x44]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], esi
jl 0x447b5c
mov eax, dword [ebp - 0x18]
jmp 0x4462a0
cmp edx, 0x57
jne 0x447b5c
mov eax, dword [ebp - 0x18]
cmp eax, esi
jl 0x447b5c
mov dword [ebp + 0x10], eax
jmp 0x447b5c
mov dword [ebp + 0x48], edx
mov byte [ebx], 0x1a
jmp 0x4466d8
cmp dword [ebp + 0x24], 0xfffffffe
jne 0x4462bd
or dword [ebp + 0x24], 0xffffffff
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp], eax
mov dword [ebp + 0x48], ebx
mov byte [ebx], 0xc
jmp 0x4466d8
sub eax, 0x3f
je 0x4472f9
sub eax, 0x1c
je 0x4466fb
dec eax
je 0x4463ca
dec eax
dec eax
je 0x4463af
sub eax, 0x1d
je 0x446343
dec eax
jne 0x446348
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 0x44633b
mov eax, dword [ecx]
mov edx, ebx
sub edx, dword [ebp - 0x14]
mov esi, 0x7fffffeb
sub esi, eax
cmp esi, edx
jl 0x447cd2
sub eax, dword [ebp - 0x14]
add eax, ebx
mov dword [ecx], eax
xor eax, eax
inc eax
jmp 0x447ce5
cmp dword [ebp + 0x40], edx
jne 0x446385
mov al, byte [ebp + 0x4c]
xor esi, esi
inc esi
cmp dword [ebp + 0x20], 0
mov byte [ebp - 0x4c], al
je 0x4471ff
cmp dword [ebp + 0x4c], 0xc0
jl 0x4471ff
mov ecx, dword [ebp + 0x50]
jmp 0x446377
mov dword [ebp + 0x50], ecx
mov al, byte [ecx]
mov byte [ebp + esi - 0x4c], al
inc esi
inc ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x44636d
jmp 0x4471ff
push dword [ebp + 0x68]
lea eax, [ebp + 0x28]
push eax
lea eax, [ebp + 0x1c]
push eax
lea eax, [esi + 1]
call fcn.00444623
mov dword [ebp + 0x50], eax
mov eax, dword [ebp + 0x68]
add esp, 0xc
cmp dword [eax], 0
jne 0x447cdb
jmp 0x447303
test byte [ebp + 0x2c], 2
je 0x4463bf
cmp dword [ebp + 0x24], 0xfffffffe
jne 0x4463bf
or dword [ebp + 0x24], 0xffffffff
mov dword [ebp + 0x48], edx
mov byte [ebx], 0x19
jmp 0x4466d8
push 0
push dword [ebp + 0x2c]
lea eax, [ebp + 0x50]
push dword [edi + 0x30]
mov dword [ebp - 0x20], esi
push dword [ebp + 0x68]
push eax
call fcn.0044426e
mov ecx, dword [ebp + 0x68]
add esp, 0x14
cmp dword [ecx], 0
jne 0x447cdb
test eax, eax
jge 0x4466de
mov ecx, eax
neg ecx
cmp ecx, 0x19
jne 0x446422
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x5c
jne 0x446416
add eax, 2
cmp byte [eax], 0x45
je 0x4456fd
mov dword [ebp + 8], 1
jmp 0x447b5c
cmp ecx, 0x18
je 0x447b5c
cmp dword [ebp + 0x24], 0xfffffffe
jne 0x44643f
cmp ecx, 5
jle 0x44643f
cmp ecx, 0x16
jge 0x44643f
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], edx
jne 0x446658
mov esi, dword [ebp + 0x50]
inc esi
mov dl, byte [esi]
cmp dl, 0x3c
je 0x44646d
cmp dl, 0x27
je 0x44646d
cmp dl, 0x7b
jne 0x446658
and dword [ebp + 0x40], 0
mov dword [ebp + 0x50], esi
mov al, byte [esi]
cmp al, 0x3c
jne 0x446481
push 0x3e
jmp 0x445f22
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 + 0x14], esi
je 0x4464b1
mov eax, edx
inc esi
mov dword [ebp + 0x50], esi
movzx edx, byte [esi]
test byte [edx + eax], 0x10
jne 0x4464a4
mov eax, esi
sub eax, dword [ebp + 0x14]
cmp dword [ebp + 0x7c], 0
mov dword [ebp + 0x48], eax
je 0x4464d9
movzx edx, byte [esi]
cmp edx, ecx
jne 0x447bef
cmp eax, 0x20
jg 0x446045
and dword [ebp + 0x4c], 0
jmp 0x446553
mov eax, dword [edi + 0x24]
and dword [ebp + 0x3c], 0
cmp dword [edi + 0x28], 0
mov dword [ebp + 0x44], eax
jle 0x446515
mov esi, eax
push dword [ebp + 0x48]
lea eax, [esi + 2]
push eax
push dword [ebp + 0x14]
call fcn.00450b38
add esp, 0xc
test eax, eax
je 0x446512
add esi, dword [edi + 0x2c]
inc dword [ebp + 0x3c]
mov eax, dword [ebp + 0x3c]
cmp eax, dword [edi + 0x28]
mov dword [ebp + 0x44], esi
jl 0x4464eb
mov esi, dword [ebp + 0x50]
mov eax, dword [ebp + 0x3c]
cmp eax, dword [edi + 0x28]
jge 0x44652b
mov eax, dword [ebp + 0x44]
movzx ecx, byte [eax + 1]
mov ch, byte [eax]
mov dword [ebp + 0x4c], ecx
jmp 0x446553
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 + 0x14]
mov ecx, esi
call fcn.004446b8
add esp, 0xc
test eax, eax
mov dword [ebp + 0x4c], eax
jle 0x445b9f
cmp dword [ebp + 0x40], 0
je 0x446665
cmp dword [ebp + 0x7c], 0
mov eax, dword [edi + 0x14]
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x44], eax
jne 0x44660b
cmp dword [ebp + 0x4c], 0
mov byte [ebx], 0
je 0x44658c
push dword [ebp + 0x4c]
mov eax, dword [edi + 0x14]
push dword [ebp + 0x20]
call fcn.00444a78
pop ecx
pop ecx
mov dword [ebp + 0x44], eax
test eax, eax
jne 0x4465e2
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.004446b8
add esp, 0xc
test eax, eax
jl 0x445b9f
mov eax, dword [edi + 0x14]
mov ecx, dword [ebp + 0x4c]
add ecx, eax
mov dword [ebp + 0x44], ecx
mov ecx, ebx
sub ecx, eax
mov eax, dword [edi + 0x20]
add ecx, 4
sar ecx, 8
mov byte [eax], cl
mov ecx, dword [edi + 0x20]
mov al, bl
sub al, byte [edi + 0x14]
add al, 4
mov byte [ecx + 1], al
add dword [edi + 0x20], 2
jmp 0x446608
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
test ecx, ecx
jne 0x44660b
push dword [ebp + 0x20]
mov eax, dword [ebp + 0x74]
push ebx
push dword [ebp + 0x44]
call fcn.00444d82
add esp, 0xc
test eax, eax
jne 0x447c47
mov eax, dword [ebp + 0x44]
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 0x447b5c
or dword [ebp + 0x24], 0xffffffff
jmp 0x447b5c
cmp ecx, 0x1b
jl 0x4466a6
push 0xffffffffffffffe5
pop ecx
sub ecx, eax
mov dword [ebp + 0x4c], ecx
cmp dword [ebp + 0x24], 0xfffffffe
jne 0x44666f
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 0x44668f
shl eax, cl
or dword [edi + 0x38], eax
cmp ecx, dword [edi + 0x34]
jle 0x447b5c
mov eax, dword [ebp + 0x4c]
mov dword [edi + 0x34], eax
jmp 0x447b5c
cmp ecx, 0x15
je 0x447c55
cmp ecx, 0xe
je 0x447c55
cmp ecx, 0xf
je 0x447c55
cmp ecx, 5
jle 0x4466d0
cmp ecx, 0x16
jge 0x4466d0
mov dword [ebp + 0x48], ebx
jmp 0x4466d4
and dword [ebp + 0x48], 0
neg al
mov byte [ebx], al
inc ebx
jmp 0x447b5c
cmp dword [ebp + 0x20], 0
je 0x4471f9
cmp eax, 0x7f
jle 0x4471f9
lea ecx, [ebp - 0x4c]
push ecx
push eax
jmp 0x4471ee
mov al, byte [esi + 1]
cmp al, 0x3a
mov dword [ebp + 0x48], ebx
je 0x44670d
cmp al, 0x2e
je 0x44670d
cmp al, 0x3d
jne 0x446726
lea eax, [ebp - 0x20]
push eax
mov ecx, edi
mov eax, esi
call fcn.00444db4
test eax, eax
pop ecx
jne 0x447c60
mov esi, dword [ebp + 0x50]
and dword [ebp], 0
inc esi
mov dword [ebp + 0x50], esi
movzx eax, byte [esi]
cmp eax, 0x5c
mov dword [ebp + 0x4c], eax
jne 0x44675b
inc esi
cmp byte [esi], 0x45
je 0x44672a
push 3
push 0x4675e8
push esi
call fcn.00450b38
add esp, 0xc
test eax, eax
jne 0x44676f
mov esi, dword [ebp + 0x50]
add esi, 3
jmp 0x44672a
cmp dword [ebp], 0
jne 0x44676f
cmp eax, 0x5e
jne 0x44676f
mov dword [ebp], 1
jmp 0x44672a
or dword [ebp + 0xc], 0xffffffff
xor esi, esi
push 0x20
lea eax, [ebp - 0x40]
push esi
push eax
mov dword [ebp + 0x38], esi
call fcn.00450990
add esp, 0xc
cmp dword [ebp + 0x4c], 0
mov dword [ebp + 0x34], esi
lea esi, [ebx + 4]
je 0x447ca6
cmp dword [ebp + 0x20], 0
je 0x446804
cmp dword [ebp + 0x4c], 0x7f
jle 0x446804
mov eax, dword [ebp + 0x50]
movzx eax, byte [eax]
cmp eax, 0xc0
mov dword [ebp + 0x4c], eax
jl 0x446804
and eax, 0x3f
movzx eax, byte [eax + 0x467a08]
mov ecx, eax
imul ecx, ecx, 6
mov dword [ebp + 0x30], eax
mov eax, dword [eax*4 + 0x4679ec]
and eax, dword [ebp + 0x4c]
xor edx, edx
shl eax, cl
inc edx
mov dword [ebp + 0x40], edx
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x30]
cmp eax, edx
jl 0x446801
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 dword [ebp + 0x4c], eax
inc dword [ebp + 0x40]
mov eax, dword [ebp + 0x30]
cmp dword [ebp + 0x40], eax
jle 0x4467e1
add dword [ebp + 0x50], eax
cmp dword [ebp + 8], 0
je 0x44682d
cmp dword [ebp + 0x4c], 0x5c
jne 0x446e10
mov eax, dword [ebp + 0x50]
inc eax
cmp byte [eax], 0x45
jne 0x446e10
and dword [ebp + 8], 0
mov dword [ebp + 0x50], eax
jmp 0x4470ef
cmp dword [ebp + 0x4c], 0x5b
jne 0x446993
mov eax, dword [ebp + 0x50]
mov al, byte [eax + 1]
cmp al, 0x3a
je 0x44684d
cmp al, 0x2e
je 0x44684d
cmp al, 0x3d
jne 0x446e10
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp + 0x50]
mov ecx, edi
call fcn.00444db4
test eax, eax
pop ecx
je 0x446e10
mov eax, dword [edi + 8]
and dword [ebp + 0x30], 0
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x3a
jne 0x447c7a
add dword [ebp + 0x50], 2
mov eax, dword [ebp + 0x50]
cmp byte [eax], 0x5e
jne 0x446891
inc dword [ebp + 0x50]
mov dword [ebp + 0x30], 1
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp + 0x50]
push eax
push dword [ebp + 0x50]
call fcn.00444dea
test eax, eax
pop ecx
pop ecx
jl 0x447c85
test byte [ebp + 0x2c], 1
je 0x4468b7
cmp eax, 2
jg 0x4468b7
xor eax, eax
imul eax, eax, 3
shl eax, 2
mov dword [ebp + 4], eax
mov eax, dword [eax + 0x467430]
add eax, dword [ebp + 0x40]
push 0x20
push eax
lea eax, [ebp - 0x8c]
push eax
call fcn.00450190
mov ecx, dword [ebp + 4]
mov eax, dword [ecx + 0x467434]
mov ecx, dword [ecx + 0x467438]
add esp, 0xc
test eax, eax
mov dword [ebp + 4], ecx
jl 0x446930
test ecx, ecx
mov edx, dword [ebp + 0x40]
jl 0x446914
xor ecx, ecx
add eax, edx
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x40]
mov al, byte [eax + ecx]
or byte [ebp + ecx - 0x8c], al
inc ecx
cmp ecx, 0x20
jl 0x4468ff
jmp 0x446930
xor ecx, ecx
add eax, edx
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x40]
mov al, byte [eax + ecx]
not al
and byte [ebp + ecx - 0x8c], al
inc ecx
cmp ecx, 0x20
jl 0x44691b
mov eax, dword [ebp + 4]
test eax, eax
jge 0x446939
neg eax
cmp eax, 1
jne 0x446947
and byte [ebp - 0x8b], 0xc3
jmp 0x446953
cmp eax, 2
jne 0x446953
and byte [ebp - 0x81], 0x7f
xor eax, eax
cmp dword [ebp + 0x30], eax
je 0x44696f
mov cl, byte [ebp + eax - 0x8c]
not cl
or byte [ebp + eax - 0x40], cl
inc eax
cmp eax, 0x20
jl 0x44695a
jmp 0x446980
mov cl, byte [ebp + eax - 0x8c]
or byte [ebp + eax - 0x40], cl
inc eax
cmp eax, 0x20
jl 0x44696f
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x38], 0xa
jmp 0x4470ef
cmp dword [ebp + 0x4c], 0x5c
jne 0x446e10
push 1
push dword [ebp + 0x2c]
lea eax, [ebp + 0x50]
push dword [edi + 0x30]
push dword [ebp + 0x68]
push eax
call fcn.0044426e
mov dword [ebp + 0x4c], eax
mov eax, dword [ebp + 0x68]
add esp, 0x14
cmp dword [eax], 0
jne 0x447cdb
mov edx, dword [ebp + 0x4c]
neg edx
cmp edx, 5
jne 0x4469d9
mov dword [ebp + 0x4c], 8
jmp 0x446e10
cmp edx, 0x15
jne 0x4469ea
mov dword [ebp + 0x4c], 0x58
jmp 0x446e10
cmp edx, 0x10
jne 0x4469fb
mov dword [ebp + 0x4c], 0x52
jmp 0x446e10
cmp edx, 0x19
jne 0x446a21
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x5c
jne 0x446a15
add eax, 2
cmp byte [eax], 0x45
je 0x446825
mov dword [ebp + 8], 1
jmp 0x4470ef
cmp edx, 0x18
je 0x4470ef
cmp dword [ebp + 0x4c], 0
jge 0x446e10
add dword [ebp + 0x38], 2
cmp dword [ebp + 0x7c], 0
mov eax, dword [edi + 8]
jne 0x446b3f
mov ecx, edx
sub ecx, 6
je 0x446b1e
dec ecx
je 0x446aff
dec ecx
je 0x446ad7
dec ecx
je 0x446ab1
dec ecx
je 0x446a8d
dec ecx
je 0x446a6b
sub ecx, 0xd
jmp 0x446b72
and dword [ebp + 0x4c], 0
mov edx, dword [ebp + 0x4c]
lea ecx, [ebp + edx - 0x40]
mov dl, byte [eax + edx + 0xa0]
or byte [ecx], dl
inc dword [ebp + 0x4c]
cmp dword [ebp + 0x4c], 0x20
jl 0x446a6f
jmp 0x4470ef
and dword [ebp + 0x4c], 0
mov edx, dword [ebp + 0x4c]
lea ecx, [ebp + edx - 0x40]
mov dl, byte [eax + edx + 0xa0]
not dl
or byte [ecx], dl
inc dword [ebp + 0x4c]
cmp dword [ebp + 0x4c], 0x20
jl 0x446a91
jmp 0x4470ef
mov dword [ebp + 0x44], eax
lea eax, [ebp - 0x40]
xor edx, edx
sub dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x44]
lea ecx, [ebp + edx - 0x40]
mov al, byte [ecx + eax]
or byte [ecx], al
inc edx
cmp edx, 0x20
jl 0x446abc
and byte [ebp - 0x3f], 0xf7
jmp 0x4470ef
mov dword [ebp + 0x44], eax
lea eax, [ebp - 0x40]
xor edx, edx
sub dword [ebp + 0x44], eax
mov eax, dword [ebp + 0x44]
lea ecx, [ebp + edx - 0x40]
mov al, byte [ecx + eax]
not al
or byte [ecx], al
inc edx
cmp edx, 0x20
jl 0x446ae2
or byte [ebp - 0x3f], 8
jmp 0x4470ef
and dword [ebp + 0x4c], 0
mov edx, dword [ebp + 0x4c]
lea ecx, [ebp + edx - 0x40]
mov dl, byte [eax + edx + 0x40]
or byte [ecx], dl
inc dword [ebp + 0x4c]
cmp dword [ebp + 0x4c], 0x20
jl 0x446b03
jmp 0x4470ef
and dword [ebp + 0x4c], 0
mov edx, dword [ebp + 0x4c]
lea ecx, [ebp + edx - 0x40]
mov dl, byte [eax + edx + 0x40]
not dl
or byte [ecx], dl
inc dword [ebp + 0x4c]
cmp dword [ebp + 0x4c], 0x20
jl 0x446b22
jmp 0x4470ef
mov eax, dword [ebp + 0x4c]
cmp eax, 0xfffffff9
je 0x4470ef
cmp eax, 0xfffffffa
je 0x4470ef
cmp eax, 0xfffffff5
je 0x4470ef
cmp eax, 0xfffffff6
je 0x4470ef
cmp eax, 0xfffffff7
je 0x4470ef
cmp eax, 0xfffffff8
je 0x4470ef
cmp edx, 0x12
jne 0x446c19
or byte [ebp - 0x3f], 2
or byte [ebp - 0x3c], 1
or byte [ebp - 0x2c], 1
cmp dword [ebp + 0x20], 0
je 0x4470ef
mov byte [esi], 1
inc esi
push esi
push 0x1680
mov dword [ebp + 0x34], 1
call fcn.0044d7bf
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x180e
call fcn.0044d7bf
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x2000
call fcn.0044d7bf
add esi, eax
push esi
push 0x200a
call fcn.0044d7bf
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x202f
call fcn.0044d7bf
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x205f
call fcn.0044d7bf
add esi, eax
mov byte [esi], 1
inc esi
push esi
push 0x3000
call fcn.0044d7bf
add esp, 0x38
add esi, eax
jmp 0x4470ef
cmp edx, 0x11
jne 0x446d3a
xor ecx, ecx
mov eax, ecx
dec eax
mov edx, 0xff
je 0x446c3f
sub eax, 3
je 0x446c38
sub eax, 0x10
jne 0x446c44
mov edx, 0xfe
jmp 0x446c44
mov edx, 0xfd
or byte [ebp + ecx - 0x40], dl
inc ecx
cmp ecx, 0x20
jl 0x446c24
cmp dword [ebp + 0x20], 0
je 0x4470ef
mov byte [esi], 2
inc esi
push esi
push pe_nt_image_headers32
mov dword [ebp + 0x34], 1
call fcn.0044d7bf
add esi, eax
push esi
push 0x167f
call fcn.0044d7bf
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x1681
call fcn.0044d7bf
add esi, eax
push esi
push 0x180d
call fcn.0044d7bf
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x180f
call fcn.0044d7bf
add esi, eax
push esi
push 0x1fff
call fcn.0044d7bf
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x200b
call fcn.0044d7bf
add esi, eax
push esi
push 0x202e
call fcn.0044d7bf
add esi, eax
add esp, 0x40
mov byte [esi], 2
inc esi
push esi
push 0x2030
call fcn.0044d7bf
add esi, eax
push esi
push 0x205e
call fcn.0044d7bf
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x2060
call fcn.0044d7bf
add esi, eax
push esi
push 0x2fff
call fcn.0044d7bf
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x3001
call fcn.0044d7bf
add esi, eax
push esi
push bind
call fcn.0044d7bf
add esp, 0x30
jmp 0x446c12
cmp edx, 0x14
jne 0x446d7c
or byte [ebp - 0x3f], 0x3c
or byte [ebp - 0x30], 0x20
cmp dword [ebp + 0x20], 0
je 0x4470ef
mov byte [esi], 2
inc esi
push esi
push 0x2028
mov dword [ebp + 0x34], 1
call fcn.0044d7bf
add esi, eax
push esi
push 0x2029
call fcn.0044d7bf
add esp, 0x10
jmp 0x446c12
cmp edx, 0x13
jne 0x446df9
xor eax, eax
mov edx, eax
dec edx
mov ecx, 0xff
je 0x446d97
sub edx, 0xf
jne 0x446d9c
add ecx, 0xffffffe0
jmp 0x446d9c
mov ecx, 0xc3
or byte [ebp + eax - 0x40], cl
inc eax
cmp eax, 0x20
jl 0x446d83
cmp dword [ebp + 0x20], 0
je 0x4470ef
mov byte [esi], 2
inc esi
push esi
push pe_nt_image_headers32
mov dword [ebp + 0x34], 1
call fcn.0044d7bf
add esi, eax
push esi
push 0x2027
call fcn.0044d7bf
add esi, eax
mov byte [esi], 2
inc esi
push esi
push 0x2029
call fcn.0044d7bf
add esi, eax
push esi
push bind
call fcn.0044d7bf
add esp, 0x20
jmp 0x446c12
test byte [ebp + 0x2c], 0x40
jne 0x447c90
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 0x446e26
lea ecx, [eax + 2]
cmp byte [ecx], 0x45
jne 0x446e2c
and dword [ebp + 8], 0
mov eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax + 1], 0x5c
je 0x446e15
cmp dword [ebp + 8], 0
mov dword [ebp + 4], eax
jne 0x44706a
mov eax, dword [ebp + 0x50]
cmp byte [eax + 1], 0x2d
jne 0x44706a
push 2
pop ecx
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
jne 0x446e8e
cmp byte [eax + 1], 0x45
jne 0x446e80
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
je 0x446e53
jmp 0x446e80
cmp byte [eax + 1], 0x51
jne 0x446e8e
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
jne 0x446e87
cmp byte [eax + 1], 0x45
jne 0x446e87
add eax, ecx
mov dword [ebp + 0x50], eax
cmp byte [eax], 0x5c
je 0x446e65
jmp 0x446e8e
mov dword [ebp + 8], 1
mov al, byte [eax]
test al, al
je 0x447064
cmp dword [ebp + 8], 0
jne 0x446ea6
cmp al, 0x5d
je 0x447064
cmp dword [ebp + 0x20], 0
je 0x446f0e
movzx edx, al
cmp edx, 0xc0
mov dword [ebp + 0x3c], edx
jl 0x446f14
mov eax, edx
and eax, 0x3f
movzx eax, byte [eax + 0x467a08]
mov ecx, eax
imul ecx, ecx, 6
mov dword [ebp + 0x30], eax
mov eax, dword [eax*4 + 0x4679ec]
and eax, edx
shl eax, cl
xor edx, edx
inc edx
mov dword [ebp + 0x40], edx
mov dword [ebp + 0x3c], eax
mov eax, dword [ebp + 0x30]
cmp eax, edx
jl 0x446f09
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 dword [ebp + 0x3c], eax
inc dword [ebp + 0x40]
mov eax, dword [ebp + 0x30]
cmp dword [ebp + 0x40], eax
jle 0x446ee9
add dword [ebp + 0x50], eax
jmp 0x446f14
movzx eax, al
mov dword [ebp + 0x3c], eax
cmp dword [ebp + 8], 0
jne 0x446f79
cmp dword [ebp + 0x3c], 0x5c
jne 0x446f79
push 1
push dword [ebp + 0x2c]
lea eax, [ebp + 0x50]
push dword [edi + 0x30]
push dword [ebp + 0x68]
push eax
call fcn.0044426e
mov dword [ebp + 0x3c], eax
mov eax, dword [ebp + 0x68]
add esp, 0x14
cmp dword [eax], 0
jne 0x447cdb
mov eax, dword [ebp + 0x3c]
test eax, eax
jge 0x446f79
cmp eax, 0xfffffffb
jne 0x446f5b
mov dword [ebp + 0x3c], 8
jmp 0x446f79
cmp eax, 0xffffffeb
jne 0x446f69
mov dword [ebp + 0x3c], 0x58
jmp 0x446f79
cmp eax, 0xfffffff0
jne 0x447064
mov dword [ebp + 0x3c], 0x52
mov eax, dword [ebp + 0x3c]
cmp eax, dword [ebp + 0x4c]
jl 0x447c9b
je 0x44706a
cmp dword [ebp + 0x20], 0
je 0x446fe0
cmp eax, 0xff
jg 0x446fa3
test byte [ebp + 0x2c], 1
je 0x446fe0
cmp eax, 0x7f
jle 0x446fe0
mov byte [esi], 2
inc esi
push esi
push dword [ebp + 0x4c]
mov dword [ebp + 0x34], 1
call fcn.0044d7bf
add esi, eax
push esi
push dword [ebp + 0x3c]
call fcn.0044d7bf
add esp, 0x10
add esi, eax
test byte [ebp + 0x2c], 1
je 0x4470ef
push 0x7f
pop eax
cmp dword [ebp + 0x4c], eax
jg 0x4470ef
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 0x4470ef
mov eax, dword [ebp + 0x3c]
cmp dword [ebp + 0x4c], eax
jg 0x4470ef
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 - 0x40]
or byte [eax], dl
cmp dword [ebp + 0x30], 0
je 0x447054
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 - 0x40]
or byte [eax], dl
inc dword [ebp + 0x4c]
mov eax, dword [ebp + 0x4c]
cmp eax, dword [ebp + 0x3c]
jle 0x447011
jmp 0x4470ef
mov eax, dword [ebp + 4]
mov dword [ebp + 0x50], eax
cmp dword [ebp + 0x20], 0
je 0x4470a0
cmp dword [ebp + 0x4c], 0xff
jg 0x447085
test byte [ebp + 0x2c], 1
je 0x4470a0
cmp dword [ebp + 0x4c], 0x7f
jle 0x4470a0
mov byte [esi], 1
inc esi
push esi
push dword [ebp + 0x4c]
mov dword [ebp + 0x34], 1
call fcn.0044d7bf
pop ecx
pop ecx
jmp 0x446c12
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 - 0x40]
or byte [eax], dl
test byte [ebp + 0x2c], 1
je 0x4470e6
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 - 0x40]
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 0x447ca6
cmp eax, 0x5d
jne 0x446797
cmp dword [ebp + 8], 0
jne 0x446797
mov ecx, dword [ebp]
xor edx, edx
cmp ecx, edx
je 0x447128
mov al, byte [ebp - 0x3f]
and al, 0x24
cmp al, 0x24
jmp 0x44712c
test byte [ebp - 0x3f], 0x24
je 0x447135
or dword [edi + 0x3c], 0x4000000
cmp dword [ebp + 0x38], 1
jne 0x447153
cmp dword [ebp + 0x34], edx
jne 0x447153
cmp dword [ebp + 0x20], edx
je 0x4471b7
cmp ecx, edx
je 0x4471b7
mov eax, dword [ebp + 0xc]
cmp eax, 0x80
jl 0x4471ba
cmp dword [ebp + 0x24], 0xfffffffe
jne 0x44715d
or dword [ebp + 0x24], 0xffffffff
cmp dword [ebp + 0x34], edx
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp], eax
je 0x4472ba
mov byte [esi], 0
mov byte [ebx], 0x4f
add ebx, 3
inc esi
cmp ecx, edx
setne al
cmp dword [ebp + 0x38], edx
mov byte [ebx], al
jle 0x44729f
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.00450e80
push 0x20
lea eax, [ebp - 0x40]
push eax
push ebx
call fcn.00450190
add esp, 0x18
lea ebx, [esi + 0x20]
jmp 0x4472a1
mov eax, dword [ebp + 0xc]
cmp ecx, edx
mov esi, dword [ebp + 0x10]
mov dword [ebp], esi
je 0x4471dd
cmp dword [ebp + 0x24], 0xfffffffe
jne 0x4471ce
or dword [ebp + 0x24], 0xffffffff
mov ecx, dword [ebp + 0x24]
mov byte [ebx], 0x1d
mov dword [ebp + 0xc], ecx
inc ebx
jmp 0x4466d6
cmp dword [ebp + 0x20], edx
je 0x4471f9
cmp eax, 0x7f
jle 0x4471f9
lea eax, [ebp - 0x4c]
push eax
push dword [ebp + 0xc]
call fcn.0044d7bf
pop ecx
mov esi, eax
pop ecx
jmp 0x4471ff
xor esi, esi
inc esi
mov byte [ebp - 0x4c], 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 0x447220
mov cl, byte [ebp + eax - 0x4c]
mov byte [ebx], cl
inc ebx
inc eax
cmp eax, esi
jl 0x447214
cmp byte [ebp - 0x4c], 0xd
je 0x44722c
cmp byte [ebp - 0x4c], 0xa
jne 0x447233
or dword [edi + 0x3c], 0x4000000
mov eax, dword [ebp + 0x24]
cmp eax, 0xfffffffe
jne 0x447278
or dword [ebp + 0xc], 0xffffffff
cmp esi, 1
mov eax, dword [ebp + 0x10]
mov dword [ebp], eax
je 0x447259
cmp dword [ebp - 0x1c], 0
je 0x447259
or dword [ebp + 0x10], 0xffffffff
jmp 0x44664f
movzx eax, byte [ebp - 0x4c]
or eax, dword [ebp - 0x1c]
cmp esi, 1
mov dword [ebp + 0x24], eax
je 0x447b5c
movzx eax, byte [ebx - 1]
or eax, dword [edi + 0x40]
jmp 0x4462a0
cmp esi, 1
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp], eax
je 0x447290
cmp dword [ebp - 0x1c], 0
jne 0x447b5c
movzx eax, byte [ebx - 1]
or eax, dword [edi + 0x40]
or eax, dword [ebp - 0x1c]
jmp 0x4462a0
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 0x447b5c
cmp ecx, edx
je 0x4472de
mov byte [ebx], 0x4e
inc ebx
cmp dword [ebp + 0x7c], edx
jne 0x4472f1
lea eax, [ebp - 0x40]
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 0x4472d1
jmp 0x4472f1
push 0x20
lea eax, [ebp - 0x40]
mov byte [ebx], 0x4d
push eax
inc ebx
push ebx
call fcn.00450190
add esp, 0xc
add ebx, 0x20
jmp 0x447b5c
mov dword [ebp + 0x28], 1
mov dword [ebp + 0x1c], edx
mov edx, dword [ebp + 0x48]
test edx, edx
je 0x447cb1
mov eax, dword [ebp + 0x1c]
test eax, eax
jne 0x447321
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 0x24], ecx
mov ecx, dword [ebp]
mov dword [ebp + 0x10], ecx
sub eax, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x50]
neg eax
sbb eax, eax
and dword [ebp + 0x44], 0
and dword [ebp + 0x34], 0
and eax, 0x200
mov esi, edx
inc ecx
mov dword [ebp - 0x6c], eax
mov dword [ebp + 0x18], esi
mov al, byte [ecx]
cmp al, 0x2b
jne 0x447358
mov edx, dword [ebp + 0x48]
xor eax, eax
mov dword [ebp + 0x34], 1
mov dword [ebp + 0x50], ecx
jmp 0x447367
cmp al, 0x3f
jne 0x447364
mov eax, dword [ebp - 0x68]
mov dword [ebp + 0x50], ecx
jmp 0x447367
mov eax, dword [ebp - 0x64]
mov cl, byte [edx]
cmp cl, 0x1b
mov dword [ebp + 0x3c], eax
je 0x44781c
cmp cl, 0x1c
je 0x44781c
cmp cl, 0x1d
jne 0x4473bc
cmp dword [ebp + 0x34], 0
movzx eax, byte [edx + 1]
mov dword [ebp + 0x44], 0xd
mov dword [ebp + 0x4c], eax
jne 0x447881
cmp dword [ebp + 0x28], 0
jge 0x447881
push dword [ebp + 0x2c]
mov eax, dword [ebp + 0x50]
inc eax
push eax
push 0
push dword [ebp + 0x20]
push dword [ebp + 0x4c]
push 0x1d
jmp 0x447867
cmp cl, 0x16
jae 0x4473f9
cmp dword [ebp + 0x34], 0
movzx eax, cl
mov dword [ebp + 0x44], 0x1a
mov dword [ebp + 0x4c], eax
jne 0x447881
cmp dword [ebp + 0x28], 0
jge 0x447881
push dword [ebp + 0x2c]
mov eax, dword [ebp + 0x50]
inc eax
push eax
push 0
push dword [ebp + 0x20]
push 0
push dword [ebp + 0x4c]
jmp 0x447867
cmp cl, 0x4d
je 0x4477a2
cmp cl, 0x4e
je 0x4477a2
cmp cl, 0x4f
je 0x4477a2
cmp cl, 0x50
je 0x4477a2
cmp cl, 0x5d
je 0x447435
cmp cl, 0x5e
je 0x447435
cmp cl, 0x5c
je 0x447435
cmp cl, 0x5f
jne 0x447cbc
and dword [ebp + 4], 0
and dword [ebp + 0x14], 0
mov eax, ebx
sub eax, edx
cmp cl, 0x5f
mov dword [ebp + 0x38], eax
jne 0x447453
cmp byte [edx + 3], 0x65
je 0x447cc7
cmp dword [ebp + 0x28], 0xffffffff
jne 0x447471
mov eax, edx
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x54
jne 0x44745b
mov ecx, ebx
sub ecx, eax
mov dword [ebp + 4], ecx
cmp dword [ebp + 0x1c], 0
jne 0x447514
cmp dword [ebp + 0x28], 0
je 0x4477a8
cmp dword [ebp + 0x28], 1
push dword [ebp - 8]
mov edi, dword [ebp + 0x78]
push dword [ebp + 0x20]
mov byte [ebx], 0
jg 0x4474c4
push 1
push dword [ebp + 0x48]
call fcn.00444e28
mov eax, dword [ebp + 0x48]
push dword [ebp + 0x38]
lea esi, [eax + 1]
push eax
push esi
call fcn.00450e80
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 0x447503
push 4
push dword [ebp + 0x48]
call fcn.00444e28
push dword [ebp + 0x38]
mov eax, dword [ebp + 0x48]
push eax
add eax, 4
push eax
call fcn.00450e80
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 + 0x14], 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 ecx, dword [ebp + 0x28]
mov edi, dword [ebp + 0x78]
jmp 0x4475e5
cmp dword [ebp + 0x1c], 1
jle 0x4475d8
mov ecx, dword [ebp + 0x7c]
test ecx, ecx
je 0x447565
mov eax, dword [ebp + 0x1c]
dec eax
mov dword [ebp + 0x40], eax
imul eax, dword [ebp - 0x10]
fild dword [ebp + 0x40]
fimul dword [ebp - 0x10]
mov dword [ebp + 0x30], eax
fcomp qword [0x4675e0]
fnstsw ax
test ah, 0x41
je 0x447cd2
mov eax, dword [ecx]
mov edx, 0x7fffffeb
sub edx, eax
cmp edx, dword [ebp + 0x30]
jl 0x447cd2
mov edx, dword [ebp + 0x30]
add edx, eax
mov dword [ecx], edx
jmp 0x4475d8
cmp dword [ebp - 0x50], 0
je 0x447577
cmp dword [ebp + 0x10], 0
jge 0x447577
mov eax, dword [ebp + 0x24]
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0x1c], 1
jle 0x4475d8
mov eax, dword [ebp + 0x1c]
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 + 0x40], eax
push ebx
call fcn.00450190
add esp, 0xc
jmp 0x4475c2
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 + 0x40]
jb 0x44759e
mov esi, dword [ebp + 0x40]
add ebx, dword [ebp + 0x38]
dec dword [ebp + 0x30]
mov dword [ebp - 8], esi
jne 0x447587
mov esi, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x28]
test ecx, ecx
jle 0x4475e7
sub ecx, dword [ebp + 0x1c]
mov dword [ebp + 0x28], ecx
test ecx, ecx
jl 0x44773f
mov edx, dword [ebp + 0x7c]
test edx, edx
je 0x44763a
test ecx, ecx
jle 0x44763a
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 [0x4675e0]
fnstsw ax
test ah, 0x41
je 0x447cd2
mov eax, dword [edx]
mov edi, 0x7fffffeb
sub edi, eax
cmp edi, ecx
jl 0x447cd2
add ecx, eax
mov dword [edx], ecx
jmp 0x4476f7
lea eax, [ecx - 1]
test eax, eax
mov dword [ebp + 0x44], eax
jl 0x4476f7
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 + 0x44], 0
mov dword [ebp + 0x30], esi
je 0x447682
mov eax, dword [ebp + 0x14]
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 + 0x14], 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.00450190
mov eax, dword [ebp - 8]
add esp, 0xc
cmp eax, esi
jae 0x4476e5
mov esi, dword [ebp + 0x44]
neg esi
sbb esi, esi
and esi, 3
inc esi
cmp dword [ebp + 0x44], 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 0x4476b4
mov esi, dword [ebp + 0x30]
add ebx, dword [ebp + 0x38]
dec dword [ebp + 0x44]
mov dword [ebp - 8], esi
jns 0x447650
mov esi, dword [ebp + 0x18]
cmp dword [ebp + 0x14], 0
je 0x447a5f
mov esi, dword [ebp + 0x14]
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 0x447704
jmp 0x447a5c
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 0x447a5c
cmp byte [edi], 0x5c
je 0x447a5c
mov dword [ebp + 0x40], edi
push dword [ebp + 0x20]
push esi
push dword [ebp + 0x40]
call fcn.00444bad
add esp, 0xc
test eax, eax
jne 0x44779a
mov eax, dword [ebp + 0x40]
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax + 2]
add eax, ecx
cmp byte [eax], 0x53
mov dword [ebp + 0x40], eax
je 0x44776d
jmp 0x447a5c
add byte [edi], 3
jmp 0x447a5c
cmp dword [ebp + 0x28], 0
jne 0x4477af
mov ebx, edx
jmp 0x447b4f
mov ecx, dword [ebp + 0x28]
xor esi, esi
inc esi
cmp ecx, esi
je 0x4477bc
mov dword [edi + 0x44], esi
cmp dword [ebp + 0x1c], 0
jne 0x4477ce
cmp ecx, 0xffffffff
jne 0x4477e0
add al, 0x45
jmp 0x447a59
cmp dword [ebp + 0x1c], 1
jne 0x4477eb
cmp ecx, 0xffffffff
jne 0x4477eb
add al, 0x47
jmp 0x447a59
cmp ecx, esi
jne 0x4477eb
add al, 0x49
jmp 0x447a59
add al, 0x4b
mov byte [ebx], al
mov eax, dword [ebp + 0x1c]
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 0x44780b
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 0x447a5c
cmp dword [ebp + 0x20], 0
je 0x44782a
lea ecx, [ebx - 1]
test byte [ecx], 0x80
jne 0x447899
cmp dword [ebp + 0x1c], 1
movzx eax, byte [ebx - 1]
mov dword [ebp + 0x4c], eax
jle 0x447842
mov edi, dword [edi + 0x40]
or edi, eax
or edi, dword [ebp - 0x1c]
mov dword [ebp + 0x10], edi
cmp dword [ebp + 0x34], 0
jne 0x447881
cmp dword [ebp + 0x28], 0
jge 0x447881
push dword [ebp + 0x2c]
mov eax, dword [ebp + 0x50]
inc eax
push eax
lea eax, [ebp - 0x60]
push eax
push dword [ebp + 0x20]
mov eax, dword [ebp + 0x48]
movzx eax, byte [eax]
push dword [ebp + 0x4c]
push eax
mov edi, dword [ebp + 0x78]
call fcn.00444eee
add esp, 0x18
test eax, eax
je 0x447881
and dword [ebp + 0x3c], 0
mov dword [ebp + 0x34], 1
mov ecx, dword [ebp + 0x48]
mov al, byte [ecx]
cmp al, 0xf
je 0x4478bf
cmp al, 0xe
je 0x4478bf
or dword [ebp + 0x38], 0xffffffff
or dword [ebp + 0x40], 0xffffffff
jmp 0x4478cd
dec ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
je 0x447898
mov eax, ebx
sub eax, ecx
push eax
mov dword [ebp + 0x4c], eax
push ecx
lea eax, [ebp - 0x60]
push eax
call fcn.00450190
add esp, 0xc
or dword [ebp + 0x4c], 0x80
jmp 0x447842
movzx eax, byte [ecx + 1]
mov dword [ebp + 0x40], eax
movzx eax, byte [ecx + 2]
mov dword [ebp + 0x38], eax
cmp dword [ebp + 0x28], 0
mov esi, ebx
mov ebx, ecx
je 0x447b4f
mov edx, dword [ebp + 0x28]
xor edi, edi
inc edi
cmp edx, edi
je 0x4478eb
mov eax, dword [ebp + 0x78]
mov dword [eax + 0x44], edi
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x44]
add eax, ecx
cmp dword [ebp + 0x1c], 0
mov dword [ebp + 0x3c], eax
jne 0x44791f
cmp edx, 0xffffffff
mov ebx, dword [ebp + 0x48]
je 0x4479bb
cmp edx, edi
je 0x447a17
add al, 0x24
mov byte [ebx], al
inc ebx
mov eax, edx
mov byte [ebx + 1], dl
jmp 0x447a28
cmp dword [ebp + 0x1c], 1
jne 0x44795e
cmp edx, 0xffffffff
jne 0x447934
mov ebx, dword [ebp + 0x48]
add al, 0x20
jmp 0x447a19
cmp edx, 1
mov ebx, esi
je 0x447b4f
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 0x447a2d
mov ebx, dword [ebp + 0x48]
add cl, 0x26
mov byte [ebx], cl
mov ecx, dword [ebp + 0x1c]
inc ebx
sar ecx, 8
mov byte [ebx], cl
mov cl, byte [ebp + 0x1c]
mov byte [ebx + 1], cl
inc ebx
inc ebx
test edx, edx
jge 0x4479bf
cmp dword [ebp + 0x20], 0
je 0x4479a5
cmp dword [ebp + 0x4c], 0x80
jl 0x4479a5
mov esi, dword [ebp + 0x4c]
and esi, 7
push esi
lea eax, [ebp - 0x60]
push eax
push ebx
call fcn.00450190
mov eax, dword [ebp + 0x3c]
add esp, 0xc
add ebx, esi
jmp 0x4479bb
mov cl, byte [ebp + 0x4c]
mov byte [ebx], cl
mov ecx, dword [ebp + 0x40]
inc ebx
test ecx, ecx
jl 0x4479bb
mov byte [ebx], cl
mov cl, byte [ebp + 0x38]
inc ebx
mov byte [ebx], cl
inc ebx
add al, 0x1e
jmp 0x447a19
mov ecx, dword [ebp + 0x1c]
cmp dword [ebp + 0x28], ecx
je 0x447a2f
cmp dword [ebp + 0x20], 0
je 0x4479f1
cmp dword [ebp + 0x4c], 0x80
jl 0x4479f1
mov esi, dword [ebp + 0x4c]
and esi, 7
push esi
lea eax, [ebp - 0x60]
push eax
push ebx
call fcn.00450190
mov eax, dword [ebp + 0x3c]
add esp, 0xc
add ebx, esi
jmp 0x4479f7
mov cl, byte [ebp + 0x4c]
mov byte [ebx], cl
inc ebx
cmp dword [ebp + 0x40], 0
mov ecx, dword [ebp + 0x28]
jl 0x447a0c
mov dl, byte [ebp + 0x40]
mov byte [ebx], dl
mov dl, byte [ebp + 0x38]
inc ebx
mov byte [ebx], dl
inc ebx
sub ecx, dword [ebp + 0x1c]
cmp ecx, 1
mov dword [ebp + 0x28], ecx
jne 0x447a1e
add al, 0x22
mov byte [ebx], al
inc ebx
jmp 0x447a2f
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 + 0x20], 0
je 0x447a56
cmp dword [ebp + 0x4c], 0x80
jl 0x447a56
mov esi, dword [ebp + 0x4c]
and esi, 7
push esi
lea eax, [ebp - 0x60]
push eax
push ebx
call fcn.00450190
add esp, 0xc
add ebx, esi
jmp 0x447a5c
mov al, byte [ebp + 0x4c]
mov byte [ebx], al
inc ebx
mov esi, dword [ebp + 0x18]
cmp dword [ebp + 0x34], 0
je 0x447b4f
mov al, byte [esi]
cmp al, 0x26
je 0x447a77
cmp al, 0x40
je 0x447a77
cmp al, 0x33
jne 0x447a86
movzx eax, al
movzx eax, byte [eax + 0x467948]
add esi, eax
mov dword [ebp + 0x18], esi
mov eax, ebx
sub eax, esi
test eax, eax
mov dword [ebp + 0x30], eax
jle 0x447b4f
movzx eax, byte [esi]
cmp eax, 0x2f
jg 0x447ae5
je 0x447ae0
sub eax, 0x1e
je 0x447adb
push 2
pop ecx
sub eax, ecx
je 0x447ad6
sub eax, ecx
je 0x447ad1
sub eax, ecx
je 0x447acc
sub eax, 7
je 0x447ac4
sub eax, ecx
jne 0x447afb
mov byte [esi], 0x35
jmp 0x447b4f
mov byte [esi], 0x34
jmp 0x447b4f
mov byte [esi], 0x2a
jmp 0x447b4f
mov byte [esi], 0x29
jmp 0x447b4f
mov byte [esi], 0x28
jmp 0x447b4f
mov byte [esi], 0x27
jmp 0x447b4f
mov byte [esi], 0x36
jmp 0x447b4f
sub eax, 0x31
je 0x447b4c
sub eax, 7
je 0x447b47
dec eax
dec eax
je 0x447b42
dec eax
dec eax
je 0x447b3d
dec eax
dec eax
je 0x447b38
push dword [ebp + 0x30]
push esi
add esi, 3
push esi
call fcn.00450e80
mov eax, dword [ebp + 0x18]
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 + 0x18]
mov byte [edx + 1], al
mov eax, dword [ebp + 0x18]
inc ebx
inc ebx
mov byte [eax + 2], cl
jmp 0x447b4f
mov byte [esi], 0x44
jmp 0x447b4f
mov byte [esi], 0x43
jmp 0x447b4f
mov byte [esi], 0x42
jmp 0x447b4f
mov byte [esi], 0x41
jmp 0x447b4f
mov byte [esi], 0x37
mov eax, dword [ebp - 0x6c]
mov edi, dword [ebp + 0x78]
and dword [ebp + 0x48], 0
or dword [edi + 0x40], eax
inc dword [ebp + 0x50]
mov esi, dword [ebp + 0x50]
jmp 0x445650
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x34
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3b
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
inc dword [ebp + 0x50]
mov dword [eax], 0x1c
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
dec esi
mov dword [ebp + 0x50], esi
mov dword [eax], 0x1a
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x3a
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
dec dword [ebp + 0x50]
mov dword [eax], 0xc
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1d
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x27
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x26
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2a
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x31
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
inc esi
mov dword [ebp + 0x50], esi
mov dword [eax], 0x18
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x36
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1b
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xe
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x28
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x2d
jmp 0x447cdb
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 0x447cdb
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1f
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x1e
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
mov dword [eax], 7
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
mov dword [eax], 8
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
mov dword [eax], 6
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
mov dword [eax], 9
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
mov dword [eax], 0xb
jmp 0x447cdb
mov eax, dword [ebp + 0x68]
mov dword [eax], 0x37
jmp 0x447cdb
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